我一直在我的頭上開了幾個小時,我認爲是簡單的SQL SELECT命令。我搜索了每個地方,並閱讀了與我有關的所有問題。我嘗試了一個SQL命令生成器,甚至閱讀並應用完整的SQL教程和手冊系列,試圖從頭開始理解它(這對於我來說非常重要,關於我最終必須構建的下一個命令......) 。從三個SQL SELECT和SUM
但現在我只是堅持我想要的結果,但對中隔離選擇,我似乎無法走到一起的命令!
這裏是我的情況:3個表,第一個鏈接到第二具有共同的ID,第二個連接到第三位,另一種常見的ID,但是從第一至第三沒有共同的ID。比方說:
Table A : id, name
Table B : id, idA, amount
Table C : id, idB, amount
表A.幾個數量幾個名字表B.幾個量在表C.結果想:每個A.id和A.name,與B.amount相應和,與C.amount相應的SUM。比方說:
A.id
A.name
SUM(B.amount) WHERE B.idA = A.id
SUM(C.amount) WHERE C.idB = B.id for each B which B.idA = A.id
沒事了「前三欄」和「前兩列第四」,都與一個WHERE子句和/或一個LEFT JOIN。但是我無法實現將所有第四列累積在一起而不會搞亂一切!
有人會說:「這很容易,只要把IDA列在表C」!應該更容易,當然。但它真的有必要嗎?我不這麼認爲,但我可能是錯的!因此,我就請人(誰,我會給出一個永恆「SQL上帝」飾)與SQL技能的回答笑!「這是如此簡單就做到這一點,你走了愚蠢的小新手...!」;)
運行VB 2010和MS SQL Server
感謝您的閱讀!
所以,你要得到一個總和的結果集(又名一個單排)回的數據:A.id,A.name,SUM(B.amount),和(C.amount),你有多個B中與單個A.id相關的行,以及C中與B.id相關的多行? –
我想我們可以這麼說,是的。但是可以肯定的是,不是「單行」,而是每個(A.id和A.name)都有一個SUM(B.amount)和SUM(C.amount)。 – Peter