Я пытаюсь получить последние 6-месячные данные из Oracle. Я могу получить месяц данные, только если есть данные, Мое требование, чтобы получить все данные за шесть месяцев, если данных нет, то запрос должен вернуть месяц имя и значение 0.Получить последние данные за 6 месяцев, если данные недоступны, напечатайте имя месяца и 0
Ожидаемый результат
января 1000
февраля 0
марта 0
апреля 0
мая 1200
Получение результата
января 1000
мая 1200
Ниже приведен запрос, который я пытаюсь получить.
select
to_char(trunc(td.cre_on_date,'MON'),
'Month',
'nls_date_language=american') TDATE ,
coalesce(sum(td.amt),0) amt
from trandetail td, tranheader th
where th.batchid = td.batchid
and td.status = 'FDSC'
and td.ccy = 'USD'
and th.pcid in (
(select pty_id from bus_pty_hier bh
inner join bus_pty bp on bh.ASSOC_BUS_PTY_ID = BP.PTY_ID
START WITH PARNT_BUS_PTY_ID = 1
CONNECT BY PRIOR ASSOC_BUS_PTY_ID = PARNT_BUS_PTY_ID)
union select 1 from dual)
and td.cre_on_date > trunc(sysdate-180)
GROUP BY trunc(td.cre_on_date,'MON')
ORDER BY trunc(td.cre_on_date,'MON') asc
Спасибо Alex за вашу помощь, теперь я получаю ошибку '' ORA-00904: «TD». «AMT»: неверный идентификатор. Не могли бы вы помочь решить эту проблему? – user1127643
@ user1127643 - ну, я сказал, что он непроверен * 8-) Я не изменил псевдоним таблицы в сумме. Обновлено. –
Привет, Алекс Спасибо ... Его работа сейчас. – user1127643