|
Как здесь выгрузить из таблицы ОДНУ строку с максимальной датой?
|
|||
---|---|---|---|
#18+
С order by не выходит в один запрос, т.к. выгружает все номера макс даты, т.е последние за такой то период А мне нужно, что бы просто вот одну строку С максимальной датой изменения тарифного плана Из всех номеров за этот период Только начинаю осваивать оракл вот код select td.terminal_device_id , td.msisdn , td.date_from, td.date_to, tp.tariff_plan_name as new_plan, tp2.tariff_plan_name as old_plan, tp.tariff_plan_id from cust.terminal_device td inner join cust.terminal_device td2 on td.terminal_device_id=td2.terminal_device_id inner join rd.tariff_plan tp on td.tariff_plan_id = tp.tariff_plan_id inner join rd.tariff_plan tp2 on td2.tariff_plan_id=tp2.tariff_plan_id where td.date_from between to_date ('28.02.2020 00:00:00', 'dd.mm.yyyy hh24:mi:ss') and to_date ('29.02.2020 23:59:59', 'dd.mm.yyyy hh24:mi:ss') and td.date_from=td2.date_to+1/86400 and td.tariff_plan_id!=td2.tariff_plan_id and exists (select 1 from cust.terminal_device td3 where td.terminal_device_id=td3.terminal_device_id and td3.date_to is null ) order by td.date_from desc; ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2020, 15:01 |
|
Как здесь выгрузить из таблицы ОДНУ строку с максимальной датой?
|
|||
---|---|---|---|
#18+
masir0n Только начинаю осваивать оракл ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2020, 15:07 |
|
Как здесь выгрузить из таблицы ОДНУ строку с максимальной датой?
|
|||
---|---|---|---|
#18+
masir0n, какая версия оракля? ps Код: plsql 1. 2. 3. 4. 5.
..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2020, 15:10 |
|
Как здесь выгрузить из таблицы ОДНУ строку с максимальной датой?
|
|||
---|---|---|---|
#18+
Zmeelov2, Я знаю да, я уже пробовал по разному с этой функцией поработать , но не выходит, потому и написал сюда ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2020, 15:11 |
|
Как здесь выгрузить из таблицы ОДНУ строку с максимальной датой?
|
|||
---|---|---|---|
#18+
masir0n Я знаю да, я уже пробовал по разному Надо вывести максимальную дату (поле ….) в разрезе (по каждому терминалу или тарифному плану) или что? Формулируете. В запросе оставляете ТОЛЬКО те поля, которые нужны. Запускаете. Смотрите - в результирующем наборе есть то, что надо, среди прочего? Затем Код: sql 1.
Важно понять - какие поля группировки вам нужны. ORDER BY вам здесь не нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2020, 15:24 |
|
Как здесь выгрузить из таблицы ОДНУ строку с максимальной датой?
|
|||
---|---|---|---|
#18+
Stax, А где можно посмотреть ? Да примерно такое же пробовал , но ругается select td.terminal_device_id , td.msisdn , td.date_from, td.date_to, tp.tariff_plan_name as new_plan, tp2.tariff_plan_name as old_plan, tp.tariff_plan_id from ( select td.terminal_device_id , td.msisdn , td.date_from, td.date_to, tp.tariff_plan_name as new_plan, tp2.tariff_plan_name as old_plan, tp.tariff_plan_id from cust.terminal_device td inner join cust.terminal_device td2 on td.terminal_device_id=td2.terminal_device_id inner join rd.tariff_plan tp on td.tariff_plan_id = tp.tariff_plan_id inner join rd.tariff_plan tp2 on td2.tariff_plan_id=tp2.tariff_plan_id order by td.date_from desc ) where rownum = 1 and td.date_from between to_date ('28.02.2020 00:00:00', 'dd.mm.yyyy hh24:mi:ss') and to_date ('29.02.2020 23:59:59', 'dd.mm.yyyy hh24:mi:ss') and td.date_from=td2.date_to+1/86400 and td.tariff_plan_id!=td2.tariff_plan_id and exists (select 1 from cust.terminal_device td3 where td.terminal_device_id=td3.terminal_device_id and td3.date_to is null ) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2020, 15:33 |
|
Как здесь выгрузить из таблицы ОДНУ строку с максимальной датой?
|
|||
---|---|---|---|
#18+
Zmeelov2, Я так и делал, но он мне выводит все терминал айди с максимальными датами изменения тарифного плана(ТП) ( т.е. у каждого терминала айди имеется по несколько дат изменения ТП, и вот по этому коду он мне выводит все терминиал айди , а мне нужно последнюю максимальную дату , т.е. должно выгрузить максимальную дату из всех этих дат Поля должны быть все, все что указано в селекте Как я понял он мне не дает выгрузить так как я хочу, потому что даты с одной таблички, а ТП с другой ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2020, 15:47 |
|
Как здесь выгрузить из таблицы ОДНУ строку с максимальной датой?
|
|||
---|---|---|---|
#18+
masir0n Stax, А где можно посмотреть ? какая версия оракля? вот код SELECT * FROM ( select td.terminal_device_id , td.msisdn , td.date_from, td.date_to, tp.tariff_plan_name as new_plan, tp2.tariff_plan_name as old_plan, tp.tariff_plan_id from cust.terminal_device td inner join cust.terminal_device td2 on td.terminal_device_id=td2.terminal_device_id inner join rd.tariff_plan tp on td.tariff_plan_id = tp.tariff_plan_id inner join rd.tariff_plan tp2 on td2.tariff_plan_id=tp2.tariff_plan_id where td.date_from between to_date ('28.02.2020 00:00:00', 'dd.mm.yyyy hh24:mi:ss') and to_date ('29.02.2020 23:59:59', 'dd.mm.yyyy hh24:mi:ss') and td.date_from=td2.date_to+1/86400 and td.tariff_plan_id!=td2.tariff_plan_id and exists (select 1 from cust.terminal_device td3 where td.terminal_device_id=td3.terminal_device_id and td3.date_to is null ) order by td.date_from desc ) WHERE ROWNUM =1; .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2020, 16:08 |
|
Как здесь выгрузить из таблицы ОДНУ строку с максимальной датой?
|
|||
---|---|---|---|
#18+
masir0n Zmeelov2, не дает выгрузить так как я хочу, потому что даты с одной таблички, а ТП с другой с разных табличек, тут не причем не совсем понятно что Вам надо 1) одну строку с макс датой 2) для каждого плана по одной строке с макс датой зы по одной строке для каждого deptno Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2020, 16:16 |
|
Как здесь выгрузить из таблицы ОДНУ строку с максимальной датой?
|
|||
---|---|---|---|
#18+
Stax, нужно одну строчку с максимальной датой Для каждого я уже делал ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2020, 16:19 |
|
Как здесь выгрузить из таблицы ОДНУ строку с максимальной датой?
|
|||
---|---|---|---|
#18+
masir0n Stax, нужно одну строчку с максимальной датой Для каждого я уже делал 22103006 22103042 select * from ( Ваш запрос с order by td.date_from desc ) where rownun=1 ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2020, 16:24 |
|
Как здесь выгрузить из таблицы ОДНУ строку с максимальной датой?
|
|||
---|---|---|---|
#18+
Stax, Да, все получилось Спасибо большое ! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2020, 16:25 |
|
Как здесь выгрузить из таблицы ОДНУ строку с максимальной датой?
|
|||
---|---|---|---|
#18+
masir0n, в не древних версиях расширили order by кляузу The row_limiting_clause allows you to limit the rows returned by the query. You can specify an offset, and the number of rows or percentage of rows to return. You can use this clause to implement top-N reporting. For consistent results, specify the order_by_clause to ensure a deterministic sort order. ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2020, 16:39 |
|
|
start [/forum/topic.php?fid=52&fpage=50&tid=1881442]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 322ms |
total: | 461ms |
0 / 0 |