|
|
|
Запрос на T-SQL
|
|||
|---|---|---|---|
|
#18+
суть вопроса: нужно вывести текущих абонентов, являющихся абонентами данного оператора более 5 лет написал скрипт, но логика там такая, что он выводит все смены тарифа, поэтому группирую по оператору, но COUNT после GROUP BY считает все строки, а не так, как сгруппированы SELECT История_давних.номер, История_давних.ID_оператора--, COUNT(История_давних.ID_оператора) FROM ( SELECT Давние_подключения.номер, Операторы.ID_оператора FROM [История тарифов] INNER JOIN ( SELECT [История тарифов].номер, MAX([История тарифов].дата_подключения) AS дата_подключения FROM [История тарифов] WHERE [История тарифов].дата_подключения < DATEADD(year,-5, GETDATE()) GROUP BY [История тарифов].номер ) AS Давние_подключения ON [История тарифов].номер = Давние_подключения.номер INNER JOIN Тарифы ON Тарифы.ID_тарифа = [История тарифов].ID_тарифа INNER JOIN Операторы ON Операторы.ID_оператора = Тарифы.ID_оператора WHERE [История тарифов].дата_подключения BETWEEN Давние_подключения.дата_подключения AND GETDATE() ) AS История_давних INNER JOIN ( SELECT [Номера абонентов].номер, Операторы.ID_оператора, Операторы.название -- FROM [Номера абонентов] INNER JOIN Тарифы ON Тарифы.ID_тарифа = [Номера абонентов].ID_тарифа INNER JOIN Операторы ON Операторы.ID_оператора = Тарифы.ID_оператора ) AS Текущий_оператор ON Текущий_оператор.номер = История_давних.номер GROUP BY История_давних.номер, История_давних.ID_оператора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2019, 07:06 |
|
||
|
Запрос на T-SQL
|
|||
|---|---|---|---|
|
#18+
Fastredialerсуть вопроса: нужно вывести текущих абонентов, являющихся абонентами данного оператора более 5 лет написал скрипт, но логика там такая, что он выводит все смены тарифа, поэтому группирую по оператору, но COUNT после GROUP BY считает все строки, а не так, как сгруппированы Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. В табл.[История тарифов] с ПК какая-то лажа Только один абонент в день может только подключиться чтоле ? Fastredialerнужно вывести текущих абонентов, являющихся абонентами данного оператора более 5 летСуммарно, провели "на операторе" более 5-ти лет и сейчас являются его абонентами ? Или первый раз подключались к этому оператору более 5 лет назад и сейчас являются его абонентами ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2019, 11:20 |
|
||
|
Запрос на T-SQL
|
|||
|---|---|---|---|
|
#18+
courtВ табл.[История тарифов] с ПК какая-то лажа Только один абонент в день может только подключиться чтоле ? ... эээ, это все 3-и поля ПК, - тогда замечание снимается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2019, 11:23 |
|
||
|
Запрос на T-SQL
|
|||
|---|---|---|---|
|
#18+
courtСуммарно, провели "на операторе" более 5-ти лет и сейчас являются его абонентами ? Или первый раз подключались к этому оператору более 5 лет назад и сейчас являются его абонентами ? вообщем, с этого можно начать Код: sql 1. 2. 3. 4. 5. 6. 7. 8. а затем, в зависимости от ответа на вопрос в квоте, или просуммировать, или exists-ом проверить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2019, 11:35 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=82&tid=1687025]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 364ms |

| 0 / 0 |
