Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Romanov-krd Member Откуда: Сообщений: 122 |
Всем привет! Подскажите что изменить в запросе чтобы получить - 1) Данные за последний месяц - month_id 2) из этих данных последнее время загрузки - load_dtm т.е. изменить запрос select max(t1.load_dtm), t1.approved_plan,t1.whs_id, t1.month_id from ( select max(sp.month_id) as month_id, sp.whs_id, sp.approved_plan,sp.load_dtm from dev_db_out.T_SALES_PLAN SP where sp.whs_id=530 group by sp.whs_id, sp.approved_plan, sp.load_dtm) t1 group by t1.approved_plan,t1.whs_id, t1.month_id чтобы из табл К сообщению приложен файл. Размер - 23Kb |
4 сен 17, 14:29 [20769897] Ответить | Цитировать Сообщить модератору |
Romanov-krd Member Откуда: Сообщений: 122 |
получить одну строку К сообщению приложен файл. Размер - 3Kb |
4 сен 17, 14:30 [20769902] Ответить | Цитировать Сообщить модератору |
Romanov-krd Member Откуда: Сообщений: 122 |
т.е. находит max месяц и для него max число загрузки |
4 сен 17, 14:31 [20769906] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47045 |
SELECT TOP(1) WITH TIES * FROM dev_db_out.T_SALES_PLAN ORDER BY month_id DESC, load_dtm DESC; |
4 сен 17, 14:33 [20769910] Ответить | Цитировать Сообщить модератору |
Дедушка Member Откуда: Город трёх революций Сообщений: 5114 |
|
||
4 сен 17, 14:34 [20769915] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47045 |
Поправил:
SELECT TOP(1) WITH TIES * FROM dev_db_out.T_SALES_PLAN WHERE whs_id=530 ORDER BY month_id DESC, load_dtm DESC; |
||
4 сен 17, 14:34 [20769917] Ответить | Цитировать Сообщить модератору |
Romanov-krd Member Откуда: Сообщений: 122 |
Дедушка, в поле month_id, последний месяц т.е. для отдельного whs_id самое большое значение в поле month_id, month_id это id года и месяца напр 201712 =12 декабря 2017 |
4 сен 17, 14:58 [20770002] Ответить | Цитировать Сообщить модератору |
Romanov-krd Member Откуда: Сообщений: 122 |
iap, ооо, спасибо. А как получить данные если whs_id много будет и для каждого много значений month_id и load_dtm много сделал так select sp3.load_dtm, sp3.whs_id,sp3.month_id, sp4.approved_plan from ( select max(sp2.load_dtm) as load_dtm, sp1.whs_id, sp1.month_id from ( select max(sp1.month_id) as month_id, sp1.whs_id from dev_db_out.T_SALES_PLAN SP1 group by sp1.whs_id ) sp1 inner join dev_db_out.T_SALES_PLAN SP2 on sp1.whs_id=sp2.whs_id and sp1.month_id=sp2.month_id group by sp1.whs_id, sp1.month_id ) sp3 inner join dev_db_out.T_SALES_PLAN sp4 on sp3.whs_id=sp4.whs_id and sp3.month_id=sp4.month_id and sp3.load_dtm=sp4.load_dtm но слишком громоздко и не уверен что правильно. К сообщению приложен файл. Размер - 16Kb |
4 сен 17, 15:03 [20770037] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47045 |
SELECT * FROM dev_db_out.T_SALES_PLAN ORDER BY RANK()OVER(PARTITION BY whs_id ORDER BY month_id DESC, load_dtm DESC); |
||
4 сен 17, 15:10 [20770068] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47045 |
![]() Опять поправляюсь: SELECT TOP(1) WITH TIES * FROM dev_db_out.T_SALES_PLAN ORDER BY RANK()OVER(PARTITION BY whs_id ORDER BY month_id DESC, load_dtm DESC); |
||||
4 сен 17, 15:37 [20770168] Ответить | Цитировать Сообщить модератору |
Romanov-krd Member Откуда: Сообщений: 122 |
iap, а в чем у меня тут ошибка? я немного усложнил запрос select whs.whs_id, sp.month_id,sp.load_dtm, sp.approved_plan, lnk.whs_condition_id,lnk.begin_dt,viruchka.opsum from PRD_VD_DM.V_WHS WHS left join dev_db_out.T_SALES_PLAN SP on whs.whs_id=sp.whs_id left join PRD_VD_ND.V_WHS_CONDITION_LNK lnk on whs.whs_id=lnk.whs_id left join PRD_VD_DM.V_SALES_WHS_AGG_02 VIRUCHKA on whs.whs_id=Viruchka.whs_id and sp.month_id=Viruchka.month_id ORDER BY RANK()OVER(PARTITION BY sp.whs_id ORDER BY sp.month_id DESC, sp.load_dtm DESC,lnk.begin_dt desc, viruchka.opsum desc, lnk.whs_condition_id desc) выводит задвоение записей как на картинке где whs_id = 42883 должен из этих трех один с max load_dtm К сообщению приложен файл. Размер - 14Kb |
4 сен 17, 16:50 [20770402] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |