|
Помогите пожалуйста с запросом..
|
|||
---|---|---|---|
#18+
Есть таблица: DT EmployeeID TaskID Hours Comment2020-04-20 13:30 233 13567 0.3 Comment12020-04-20 13:31 233 13567 0.2 Comment22020-04-20 13:36 233 13597 3.1 Comment12020-04-20 15:36 233 20371 2.7 2020-04-20 15:39 233 20371 0.3 Comment12342020-04-20 15:47 233 20371 0.3 2020-04-21 15:47 139 20091 1.8 2020-04-21 15:49 139 20091 0.3 Комментарий012020-04-21 13:17 103 20175 0.3 Примечание2020-04-21 17:10 107 20175 0.3 2020-04-21 18:17 107 20176 0.1 Нет данных2020-04-21 13:17 108 20135 2.3 Пример Мне нужно просуммировать Hours по каждому дню в группе Employee - TaskID . При этом вывести Comment , у той записи в группе, где дата " DT " самая ранняя. Если Comment нет в самой ранней дате, вывести следующий за ним в группе (если он есть) Т.е. должна получиться табличка: DT EmployeeID TaskID Hours Comment2020-04-20 13:30 233 13567 0.5 Comment12020-04-20 13:36 233 13597 3.1 Comment12020-04-20 15:36 233 20371 3.3 Comment12342020-04-21 15:49 139 20091 2.1 Комментарий012020-04-21 13:17 103 20175 0.3 Примечание2020-04-21 17:10 107 20175 0.3 2020-04-21 18:17 107 20176 0.1 Нет данных2020-04-21 13:17 108 20135 2.3 Пример Пишу запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
но теперь нужно прилепить ещё и нужный комментарий. Что то уже голову сломал.. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2020, 14:32 |
|
Помогите пожалуйста с запросом..
|
|||
---|---|---|---|
#18+
MAULER, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2020, 14:57 |
|
Помогите пожалуйста с запросом..
|
|||
---|---|---|---|
#18+
a_voronin, Да! FIRST_VALUE - то что нужно. Думаю, в самый раз. Благодарю. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2020, 15:08 |
|
Помогите пожалуйста с запросом..
|
|||
---|---|---|---|
#18+
MAULER Да! FIRST_VALUE - то что нужно. MAULER При этом вывести Comment , у той записи в группе, где дата " DT " самая ранняя. Если Comment нет в самой ранней дате, вывести следующий за ним в группе (если он есть) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2020, 15:29 |
|
Помогите пожалуйста с запросом..
|
|||
---|---|---|---|
#18+
invm Неужели? А если у меня вместо пустых значений в столбце Comment будет NULL - тоже не подойдет? И ещё в Вашем примере в with секции сумма два раза считаться будет? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2020, 16:09 |
|
Помогите пожалуйста с запросом..
|
|||
---|---|---|---|
#18+
MAULER А если у меня вместо пустых значений в столбце Comment будет NULL - тоже не подойдет? MAULER И ещё в Вашем примере в with секции сумма два раза считаться будет? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2020, 16:25 |
|
Помогите пожалуйста с запросом..
|
|||
---|---|---|---|
#18+
invm, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
в окно с row_number() наверно нужно добавить Код: sql 1.
вот так: Код: sql 1.
иначе мы поимеем сумму по каждому работнику за весь период. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2020, 18:52 |
|
Помогите пожалуйста с запросом..
|
|||
---|---|---|---|
#18+
MAULER в окно с row_number() наверно нужно добавить ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2020, 19:17 |
|
Помогите пожалуйста с запросом..
|
|||
---|---|---|---|
#18+
invm, Вот что то смотрю на запрос и не могу понять: Код: sql 1. 2. 3. 4. 5. 6. 7.
вот этот фрагмент будет считать сумму для каждой не группированной строки таблицы в виде расчетного поля "s", а потом просто возмет первую строку окна (где суммы везде одинаковы), где a.f = 1? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 12:20 |
|
Помогите пожалуйста с запросом..
|
|||
---|---|---|---|
#18+
MAULER вот этот фрагмент будет считать сумму для каждой не группированной строки таблицы в виде расчетного поля "s", а потом просто возмет первую строку окна (где суммы везде одинаковы), где a.f = 1? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 12:39 |
|
Помогите пожалуйста с запросом..
|
|||
---|---|---|---|
#18+
invm, Это будет очень долго (( ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 12:55 |
|
Помогите пожалуйста с запросом..
|
|||
---|---|---|---|
#18+
MAULER Это будет очень долго (( ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 13:00 |
|
Помогите пожалуйста с запросом..
|
|||
---|---|---|---|
#18+
invm, Я могу ошибаться, но мне кажется, что sum() c group by работают быстрее чем Ваш вариант. Скажите, а если не искать в окне первый не нулевой каммент, а склеить все каменты окна и вывести рядышком с суммой? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 13:25 |
|
Помогите пожалуйста с запросом..
|
|||
---|---|---|---|
#18+
MAULER, гадать можно долго. А проверять вы не хотите. Если хотите быстро, то нужно 1. Добавить в таблицу вычисляемый столбец Код: sql 1.
2. Сделать индексированное представление Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
3. Сделать индекс Код: sql 1.
4. Переписать запрос так Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 14:00 |
|
|
start [/forum/search_topic.php?author=Ves11111&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 491ms |
total: | 639ms |
0 / 0 |