我有一個查詢可以生成一個人在一年內捐贈的名稱和總金額列表。它看起來像這樣多列查詢到單列子查詢
select ad1.adbdesg_name as "Desg_Name",
sum(ag1.agvglst_amt) as "Total_Amt"
from agvglst ag1 INNER JOIN adbdesg ad1 ON ag1.agvglst_desg = ad1.adbdesg_desg
where ag1.agvglst_pidm = 12345
and to_char(ag1.agvglst_gift_date,'YYYYMMDD') >= 20150101
and to_char(ag1.agvglst_gift_date,'YYYYMMDD') <= 20151231
group by ad1.adbdesg_name;
簡單的權利?而我得到正確的結果是這樣的:
Desg_Name Total_Amt
Administrative Council Scholarship End Prin NS (65%) 16.9
Blount County Campus 240
Administrative Council Scholarship (35%) 9.1
Faculty Senate Scholarship 10
我的問題,現在我需要爲單行子查詢,將它放在報告中,他們希望每個人一時間,看看他們的捐款數額。
我做了一些研究想法也許我可以嘗試使用listagg函數來實現此目的,但我不相信您可以使用這種聚合函數,因爲不允許使用組函數。
select listagg('DESG: '|| adbdesg_name as "Desg_Name" ||' AMT: $' || sum(AGVGLST_AMT), ',')
WITHIN GROUP (ORDER BY AGVGLST_GIFT_DATE) "DesgHC2015"
任何建議/提示,將不勝感激:)
這正是我需要!我曾試過這個,但我做了倒退。謝謝! –
我也想感謝您使用EXTRACT功能。我完全忘記了這件事 –