我很苦惱如何解釋我的問題,抱歉有任何混淆。我有3個表與每個購買相關聯:交易; TransactionEntry,它包含事務中每個項目的單獨行;和TaxEntry,其中包括TransactionEntry中每個條目的taxID和taxAmount。SQL加入返回重複行
我想要查找TaxID在每個TaxAmount和價格中給定月份的總額。價格和日期在交易條目中找到,而TaxAmount和TaxID在TaxEntry中找到。另外,我們每個項目(州和縣)有多個稅。
我的表是這個樣子:
事務條目:
TransactionNum Price Date
1 8.99 2015-01-06
1 3.65 2015-01-06
2 3.99 2015-03-06
TaxEntry:
TransactionNum TaxID TaxAmount
1 2 0.89
1 16 0.09
1 2 0.37
1 16 0.04
2 4 0.40
2 16 0.04
我想找到價格的總和,通過TaxID,對於給定的月份。因此,例如,我想要爲TaxID 2返回8.99 + 3.65; TaxID 4爲3.99,TaxID 16爲8.99 + 3.65 + 3.99。我試過的每件事都會返回不正確的金額,每次重複多次。
我的代碼是:
SELECT SUM(Price), TaxID
FROM TaxEntry XE
JOIN TransactionEntry TE
ON XE.TransactionNumber = TE.TransactionNumber
WHERE CAST(TE.TransactionTime AS DATE) BETWEEN '06-01-2015' and '06-30-2015'
GROUP BY XE.TaxID
我的結果是高達三倍過大的範圍內。
我已經嘗試過與各種類型的連接,但它仍然重複信息。我覺得我應該用DISTINCT做點什麼,但是它沒有完成任何事情。
只是注意到您的Transaction表中有多個TransactionID = 1。這是一個錯誤嗎? –
它不會爲事務表中的重複transactionnum傳感器,這是錯誤結果的根本原因。 – Tim3880
交易分錄表是否有主鍵?爲什麼有兩個價格映射到交易號碼1? –