現在我自己建了幾個表
行業表T_INDUSTRY
INDUSTRY_ID INDUSTRY_NAME
1 鋼鐵
2 水泥
3 電解鋁
4 造船
5 平板玻璃
…… ……
債券持倉表 T_HLD
債券ID 債券名稱 發行人 名稱 持倉面額
C_ID C_NAME ISSUER_ID ISSUER_NAME INvEST_AMOUNT
1 企業債 100 a a公司 100
2 可轉債 101 bb公司 200
發行人行業表 T_COMPANY_INDUSTRY
發行人 行業ID
ISSUER_ID INDUSTRY_ID
100 1
101 2
還有一個理財計劃表,一個理財計劃里面可以有多個債券
現在我要查詢出來這種結果
鋼鐵 水泥 電解鋁 造船 平板玻璃 ……
理財計劃1 100 XXX XXX
理財計劃2 XXX 200
……
縱向的理財計劃是動態的LIst ,橫向的行業也要動態變化,因為行業也是會更新,怎么用一條sql查詢出這種結果?
uj5u.com熱心網友回復:
一條陳述句 出不來,你可以利用動態陳述句,將結果存放到中間表中,然后查詢中間表uj5u.com熱心網友回復:
鋼鐵 水泥 電解鋁 造船 平板玻璃 ……上面這些內容,從哪里來的?
建議你貼出部分測驗資料,和你的預期結果 ;
uj5u.com熱心網友回復:
select '理財計劃'||rownum 理財計劃,
b.ISSUER_ID,
max(case when a.INDUSTRY_NAME='鋼鐵' then b.INvEST_AMOUNT end ) 鋼鐵,
max(case when a.INDUSTRY_NAME='水泥' then b.INvEST_AMOUNT end ) 水泥,
max(case when a.INDUSTRY_NAME='電解鋁' then b.INvEST_AMOUNT end ) 電解鋁,
max(case when a.INDUSTRY_NAME='造船' then b.INvEST_AMOUNT end ) 造船,
max(case when a.INDUSTRY_NAME='平板玻璃' then b.INvEST_AMOUNT end ) 平板玻璃
from T_INDUSTRY a,T_HLD b,T_COMPANY_INDUSTRY c,理財計劃表 d
where a.INDUSTRY_ID=c.INDUSTRY_ID
and b.ISSUER_ID=c.ISSUER_ID
and b.C_ID=d.C_ID
group by b.ISSUER_ID;
uj5u.com熱心網友回復:
頂一個..................轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/116420.html
標籤:開發
上一篇:ORACLE 底層介面
下一篇:日期加6個月的轉換疑問
