|
|
|
Запрос к таблице с добавлением полей
|
|||
|---|---|---|---|
|
#18+
Всем добрый день! Есть следующая таблица Doc: Код: plaintext 1. 2. 3. 4. 5. 6. 7. нужно так построить запрос, чтобы в запрос выводились все поля + дополнительные поля dt_sell_1, dt_end_1 которые бы содержали значения dt_sell, dt_end из первой записи в разрезе user_id. Т. е. вот что должно получиться в итоге: Код: plaintext 1. 2. 3. 4. 5. 6. 7. для всех записей WHERE user_id = 281 полю dt_sell_1 присваивается значение поля dt_sell из первой записи (первая запись та, где type_doc = 1), нужно взять dt_sell (15.03.2017) и подставить во все dt_sell_1 WHERE user_id = 281. на всяк. случай для наглядности добавил скриншот, прошу помощи, возможно ли такое реализовать SQL-запросом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2017, 17:24 |
|
||
|
Запрос к таблице с добавлением полей
|
|||
|---|---|---|---|
|
#18+
Пока получился такой запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. - есть два вопроса: 1. оператор AS `dt_sell_1` не срабатывает, вместо имени столбца `dt_sell_1` выводится "(" как это исправить? 2. как переписать запрос, чтобы задавать условие WHERE `user_id` =281, т.е., чтобы запрос выполнялся в разрезе `user_id` автоматически? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2017, 17:57 |
|
||
|
Запрос к таблице с добавлением полей
|
|||
|---|---|---|---|
|
#18+
Miko_v, вернее так 2. как переписать запрос, чтобы НЕ задавать условие WHERE `user_id` =281 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2017, 17:59 |
|
||
|
Запрос к таблице с добавлением полей
|
|||
|---|---|---|---|
|
#18+
Поправил запрос (самому смешно от своей ошибки :) ) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. А вот со вторым вопросом сложнее: 2. как переписать запрос, чтобы НЕ задавать условие WHERE `user_id` =281, т.е., чтобы запрос выполнялся в разрезе `user_id` автоматически? подскажите пожалуйста, возможно ли сделать такую выборку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2017, 18:41 |
|
||
|
Запрос к таблице с добавлением полей
|
|||
|---|---|---|---|
|
#18+
В показанном примереMiko_vdt_sell, dt_end из первой записи в разрезе user_idравны максимальному значению поля в группе. Если это всегда так - используйте MAX(). Есkи нет - читайте FAQ: Выборка первой/последней записи в группах . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2017, 19:20 |
|
||
|
Запрос к таблице с добавлением полей
|
|||
|---|---|---|---|
|
#18+
Akina, Спасибо за совет, но мне важно выбрать из каждой группы даты (dt_sell, dt_end ) по условию где type_doc` =1 а не максимальное значение. И в выборку должны попадать не только строки где type_doc` =1 а все записи таблицы, но с дополнительными полями dt_sell_1, dt_end_1, которые содержат значения полей dt_sell, dt_end из записи где type_doc` =1 и все это в разрезе user_id смотрел ссылку, пока непонятно как по этим примерам можно написать такой запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2017, 12:26 |
|
||
|
Запрос к таблице с добавлением полей
|
|||
|---|---|---|---|
|
#18+
Miko_vмне важно выбрать из каждой группы даты (dt_sell, dt_end ) по условию где type_doc` =1Тогда получить эти значения в подзапросе, делов-то... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2017, 14:02 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39390179&tid=1830976]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
209ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 250ms |
| total: | 579ms |

| 0 / 0 |
