非常簡化,我有一列數字和一列日期。我想生成一行,將基於一個日期的數字合併到一列中,將另一個日期合併到另一列中。取一列並在一行上生成兩個總數
的數據看起來是這樣的 -
date number
201111 500
201111 500
201111 500
201109 500
我想它看起來就像這樣 -
sum1 sum 2
1500 500
的代碼我使用:
SELECT SUM(A1.COL1),SUM(A2.COL1)
FROM TAB1 A1,TAB1 A2
WHERE A1.DATE = '201111'
AND A2.DATE = '201109'
的結果表明,我得到的是 -
sum1 sum2
1000 1500
基本上,它不是sum1的所有sum1(應該是1500但是返回1000)並且它總和sum2太多(應該是500但是返回1500)。
如果使用PIVOT過你確定你的查詢是從一個角度加盟想要什麼?你的查詢將把Tab1中的每一行與它自己關聯起來(Tab1中的100行將產生100×100行將被加總)。 – Thomas
首先擺脫隱含的語法。你現在有一個交叉連接。沒有理由永遠使用隱式語法,因爲您的問題已經顯示,應該避免它,因爲它會導致錯誤。請不要再使用這種可憐的語法。學習使用顯式連接。 – HLGEM
你的oracle版本是什麼? – Chains