select decode(item_code,'BK4100','BKD100','BK4200','BKD200',ITEM_CODE) as item_code,tab_year as year ,tab_month as month,
(select COL1 from dxp_102544 a where a.tab_year=t.tab_year and a.tab_month=t.tab_month and a.item_code in ('BKD100','BKD200')),
(select COL7 from dxp_102544 a where a.tab_year=t.tab_year and a.tab_month=t.tab_month and a.item_code in ('BK4100','BK4200'))
as LJ from dxp_102544 t where t.item_code in ('BK4100','BK4200')
請問大大怎么改
uj5u.com熱心網友回復:
(select COL1 from dxp_102544 a where a.tab_year=t.tab_year and a.tab_month=t.tab_month and a.item_code in ('BKD100','BKD200')),(select COL7 from dxp_102544 a where a.tab_year=t.tab_year and a.tab_month=t.tab_month and a.item_code in ('BK4100','BK4200')
檢查一下,這兩個陳述句有回傳多行的情況
uj5u.com熱心網友回復:
我是初學者,麻煩修改下,讓看看結果,謝謝了
uj5u.com熱心網友回復:
這個得看你業務要求,直接改錯好改,但是我修改的結果不一定是你業務需要的……uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
我想得到BKD200 2016 7 LJ 的值uj5u.com熱心網友回復:
最簡單的,你max或者min一下結果,比如max(COL1),max(COL7) ,這樣肯定就是一條記錄了uj5u.com熱心網友回復:
你這陳述句是報如下錯誤吧?ORA-01427: 單行子查詢回傳多個行
差點理解成查詢結果本是多行了

說明樓主寫法有誤:
(SELECT COL1 FROM DXP_102544 A WHERE A.TAB_YEAR=T.TAB_YEAR AND A.TAB_MONTH=T.TAB_MONTH AND A.ITEM_CODE IN ('BKD100','BKD200')),
(select COL7 from dxp_102544 a where a.tab_year=t.tab_year and a.tab_month=t.tab_month and a.item_code in ('BK4100','BK4200')) AS LJ 關聯會出現一對多的情況,換成如下陳述句:
SELECT DECODE(T.ITEM_CODE,'BK4100','BKD100','BK4200','BKD200',T.ITEM_CODE) AS ITEM_CODE,
TAB_YEAR AS YEAR ,TAB_MONTH AS MONTH,
A.COL1,
b.COL1
FROM DXP_102544 T
LEFT JOIN DXP_102544 A
ON A.TAB_YEAR=T.TAB_YEAR AND A.TAB_MONTH=T.TAB_MONTH AND A.ITEM_CODE IN ('BKD100','BKD200')
LEFT JOIN DXP_102544 B
ON B.TAB_YEAR=T.TAB_YEAR AND B.TAB_MONTH=T.TAB_MONTH AND B.ITEM_CODE IN ('BK4100','BK4200')
WHERE T.ITEM_CODE='BK4200'
;
uj5u.com熱心網友回復:
加上max或者where后面指定一條記錄rownum =1轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/107680.html
標籤:開發
下一篇:每月按各類進行統計
