我在Access,Customer和Transaction上有兩個表。我試圖找到按狗排序的總交易量(0-3)。交易表中每個物品都有一條線,因此一條TransactionID可以有多條線。與兩個表的不同計數
這是我到目前爲止有:
SELECT Customer.Dogs, COUNT(Transaction.TransactionID) AS TotTrans
FROM Transaction, Customer
WHERE Transaction.CustomerID = Customer.CustomerID
GROUP BY Dogs
我也得到
Dogs | TotTrans
0 | 130104
1 | 59132
2 | 17811
3 | 1401
顯然,這對在該交易總錶行和狗#排序。但是,它計算交易表中的重複項(例如,有三行TransactionID = 2,因爲在該交易中客戶購買了3個項目,計數明顯包括額外的2行)。
當我嘗試做COUNT(DISTINCT Transaction.TransactionID)
它不工作,並且該消息
「語法錯誤(缺少操作員)在查詢表達式 'COUNT(DISTINCT Transaction.TransactionID)'。
我環顧四周,但似乎無法找到解決方案,我認爲問題的一部分源於我選擇兩個屬性的事實
如果有人可以幫助解釋做什麼和背後的邏輯它,那將是太棒了!
您使用的是什麼RDBMS? –
訪問,對不起,將編輯。 – bov25
請注意,順便提一下,隱式連接(在from子句中有兩個表)是一個不贊成的語法,建議切換到現代的顯式語法: 瞭解如何使用顯式連接語法。亞倫伯特蘭做了一些[**寫作**](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx)關於它 –