0
我一直在玩弄這個看起來像是幾個小時,我無法得到我想要的結果。這裏是我遇到的問題:MySQL按年份總結總數
SELECT year.year, dstate,
(SELECT sum(amount) FROM gift
WHERE year.year = gift.year
AND gift.donorno = donor.donorno)
FROM donor, gift, year
WHERE year.year = gift.year
AND gift.donorno = donor.donorno;
這似乎是多餘的。無論如何,我正在嘗試顯示每年每個州的總捐款(gift.amount)。
ex.
1999 GA 500 (donorno 1 from GA donated 200 and donorno 2 from GA donated 300)
1999 FL 400
2000 GA 600
2000 FL 500
...
爲了澄清捐助者可以來自同一州,但我試圖將捐贈年份的捐贈總額計算在該州。 任何意見表示讚賞。我覺得答案就在我面前。
謝謝。正如你可能會告訴我,我是SQL新手,目前正在參加一門入門課程。我不完全確定你的意思是「舊式逗號語法」。我還必須閱讀如何使用INNER JOIN關鍵字。我的一些實驗讓我使用GROUP BY,但我不知道可以將它用於多列。顯然這是我的問題。我將不得不更多地瞭解這一點! – Colin93
連接可以通過列出FROM子句中的表格並使用逗號分隔它們,然後在WHERE子句中指定連接語法來完成。如果你忘記把連接條件放在你的笛卡爾積中(每個表的每一行都會連接到其他表的每一行,所以你會得到'(Table1 Rows)*(Table 2 Rows)*(Table 3行)')這可能不是你想要的。通過使用顯式的JOIN語法,可以更容易地看出您是否忘記了連接的條件。瞭解INNER,LEFT,RIGHT和CROSS join之間的區別是一項重要的技能。 –