|
Логика построения запроса
|
|||
---|---|---|---|
#18+
Добрый день, помогите прийти к выводу как будет выглядеть запрос. Есть например 2 таблицы как на скриншоте. То что понятно и легко: Для начало, нужно вывести такую информацию как Агент, Блок, День, Месяц, Все_время Отображает количество строк у responsible X с статусом 1 (на самом деле id статусов больше 2) Код: plsql 1.
Отображает количество строк у user X с статусом 2 за день Код: plsql 1.
Отображает количество строк у user X с статусом 2 за месяц Код: plsql 1.
Отображает количество строк у user X с статусом 2 за все время Код: plsql 1.
Дальше идет интересное , к каждой service_id идет коэффициент с table1. (дальше будут употребляться столбцы table1) Нужно по каждому агенту вывести баллы за день, месяц и все время Код: plsql 1.
Например по скриншоту разберем агента 1, допустим сервис 1 был в периоде месяца, а сервис 5 годом ранее. Видно что у него две строки с сервисами 1 и 5. Результат будет такой Код: plsql 1. 2.
Конечный результат должен выглядеть так, данные не связанны со скриншотом! Код: plsql 1. 2. 3. 4. 5.
На данный момент юзается такой запрос с одной таблицей. Три *** это перебор всех сервисов с 1 по 67, где к каждому присваивается имя, еще когда за месяц новые имена, за все время тоже новые имена. Есть вариант как обойти этот громадный код? Это только для одного агента, для другого идет union all, а агентом много. Пробывал через group by, но не хватает мозгов. В данный момент на одного агента выходит 170 строк. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 15:08 |
|
Логика построения запроса
|
|||
---|---|---|---|
#18+
Можно так: Код: sql 1. 2. 3. 4.
И так далее. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2020, 00:27 |
|
Логика построения запроса
|
|||
---|---|---|---|
#18+
Flashpoke, Почему то не воспринимает команду filter, да если честно и не понял принцип ваш ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 18:44 |
|
Логика построения запроса
|
|||
---|---|---|---|
#18+
DeLipFin Flashpoke, Почему то не воспринимает команду filter, да если честно и не понял принцип ваш У вас видимо версия PostgreSQL <9.4. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 18:52 |
|
Логика построения запроса
|
|||
---|---|---|---|
#18+
DeLipFin, Что то с примерами у Вас все как то скомкано. Как получилось за все время 1,5? 1(s1) * 0.5 + 1(s5) * 1.5 + 2(Cnt Всего) - (1(s1) * 1 + 1(s5) * 1) = 2 Учитесь четче формулировать задачи с расчетом на то что форумчание в специфике Вашего вопроса не разбираются. Возможно пока формулируете вопрос и ответ сами найдете. не понятно зачем вообще нужны 2 коэффициента если по сути все сводится к одному K = k1 + 1 - k2. Или же Вы не правильно объяснили их предназначение. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 20:53 |
|
Логика построения запроса
|
|||
---|---|---|---|
#18+
Swa111, Да вы правы, допустил ошибку в примере. Почему такая формула? Потому что в базе есть строки без столбца сервиса к которым я не присваивал коэффициент. 1)По формуле складываются сервисы умноженные на коэфф. 2)дальше складываются с остатками, которые без сервисов были, а остатки в свою очередь находятся из периода поиска и вычитания найденных сервисов ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2020, 21:55 |
|
|
start [/forum/topic.php?fid=53&msg=39976475&tid=1994615]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 279ms |
total: | 407ms |
0 / 0 |