|
|
|
Вывести одну уникальную строку для каждого кода
|
|||
|---|---|---|---|
|
#18+
Добрый день, друзья Есть такой код select t1.account_number,t1.client_name,t1.cu_id,t2.status,t2.start_date,t2.end_date from exchange.iptraf_user_info_2 t1 left join (select * from exchange.user_statuses_enddate where end_date < to_date('01.11.2018','dd.mm.yyyy') order by start_date desc) t2 on t1.cu_id = t2.user_id where t1.account_number = '2000000826585' having count(t1.account_number) = 1 group by t1.account_number,t1.client_name,t1.tariff,t1.cu_id,t2.status,t2.start_date,t2.end_date Выводится следующее: 2000000826585 . . . 2472533 5 01.09.18 01.10.18 2000000826585 . . . 2472533 3 22.05.18 31.07.18 2000000826585 . . . 2472533 4 31.07.18 01.09.18 Вопрос: как вывести одну строку для каждого кода? То есть в результате должно быть: 2000000826585 . . . 2472533 5 01.09.18 01.10.18 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2018, 09:45 |
|
||
|
Вывести одну уникальную строку для каждого кода
|
|||
|---|---|---|---|
|
#18+
o.makarov, Проблема в status, поскольку выводятся все возможные уникальные статусы. Мне нужно, чтобы выводился один статус, в соответствии с сортировкой по дате ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2018, 09:47 |
|
||
|
Вывести одну уникальную строку для каждого кода
|
|||
|---|---|---|---|
|
#18+
o.makarov Есть такой код код менять можете? ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2018, 09:50 |
|
||
|
Вывести одну уникальную строку для каждого кода
|
|||
|---|---|---|---|
|
#18+
Staxo.makarovЕсть такой код код менять можете? ..... stax Конечно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2018, 10:41 |
|
||
|
Вывести одну уникальную строку для каждого кода
|
|||
|---|---|---|---|
|
#18+
[quot Stax]o.makarov код менять можете? ..... stax Это я написал этот код) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2018, 10:42 |
|
||
|
Вывести одну уникальную строку для каждого кода
|
|||
|---|---|---|---|
|
#18+
[quot o.makarov]Staxпропущено... Это я написал этот код) я б код переписал напишите что надо есть iptraf_user_info_2 ... и user_statuses_enddate ... надо получить зы если делать влоб то 1) row_number() over (...) =1 2) first/last keep ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2018, 11:19 |
|
||
|
Вывести одну уникальную строку для каждого кода
|
|||
|---|---|---|---|
|
#18+
[quot Stax]o.makarovпропущено... я б код переписал напишите что надо есть iptraf_user_info_2 ... и user_statuses_enddate ... надо получить зы если делать влоб то 1) row_number() over (...) =1 2) first/last keep ..... stax Ну смотрите, есть две таблицы: 1.iptraf_user_info_2 Из этой таблицы мне нужно поле account_number, то есть полный список уникальных аккаунтов 2.user_statuses_enddate Из этой таблицы мне нужны поля status,start_date,end_date Таблицы связываются iptraf_user_info_2.cu_id = user_statuses_enddate.user_id В таблице 2 хранятся статусы, то есть один и тот же user_id может дублироваться много раз, если статусы менялись Мне нужно получить, какой статус был у аккаунта на определённую дату Проблема в том, что например, мне нужен последний статус с датой начала до 01.12.2018 select user_id,status,start_date,end_date from user_statuses_enddate where start_date < to_date ('01.12.2018','dd.mm.yyyy') order by start_date desc В итоге выведется на условный 1 user_id несколько строк со всей историей изменения статусов до 01.12.2018, а мне нужна только одна верхняя строка для каждого user_id Потому что если я начинаю джойнить подобным образом, у меня ложиться база, поскольку к каждому account_number коннектятся все статусы до 01.12.2018 то есть account_number1 может получить, например, 100 строк, а мне нужна одна первая То есть, если есть, допустим, 100 аккаунтов, в итоговом запросе должно вывести 100 строк с последним start_date (до 01.12.2018) Если найдёте время разъяснить, поясняйте, пожалуйста, как недалёкому человеку, я много чего не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2018, 11:33 |
|
||
|
Вывести одну уникальную строку для каждого кода
|
|||
|---|---|---|---|
|
#18+
o.makarov, Код: plsql 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. 29. 30. 31. 32. 33. 34. 35. 36. .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2018, 12:40 |
|
||
|
Вывести одну уникальную строку для каждого кода
|
|||
|---|---|---|---|
|
#18+
Stax, спасибо большое за уделённое время Код почему-то не отрабатывает, я не совсем понимаю суть, для меня подобный код пока что сложно, но я поразбираюсь Подскажите, а этот код, насколько я понял, выведет конкретные account_number и cu_id? Мне просто необходимы все account_number, а их больше 100 000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2018, 05:31 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39751166&tid=1883006]: |
0ms |
get settings: |
12ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
157ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 241ms |
| total: | 519ms |

| 0 / 0 |
