2016-01-21 44 views
0

我給下面的數據庫模式基於查詢的關閉一個元素

Cows (cowID, cowName, cowAge) 
CowPurchaser (purchaserID, name, address) 
PurchaseRecord (purchaserID, cowID, year) 

每一年,牛買家「農田」購買ATLEAST一頭牛,發現購買的奶牛數量。輸出是元組集合,它表示「FARMLAND」購買的年份和牛的數量。

我不知道如何解決這個問題。我試過

SELECT (pr.year, COUNT(c.name)) 
FROM PurchaseRecord pr, CowPurchaser cp, Cows c 
WHERE cp.name = "FARMLAND" AND COUNT(c.name) >= 1 

這並沒有給出我想要的結果。我可能做錯了什麼?我該如何解決它?

+1

您需要加入條件。切換到現代,明確的'JOIN'語法!此外,還需要「GROUP BY」。 – jarlh

+0

是的。通常,不要使用陳舊的逗號連接語法。 – Strawberry

+0

雙引號用於標識符(例如列名稱)。你有一個名爲農田的專欄?如果它的值(字符串文字),使用單引號,即「農田」。 – jarlh

回答

0
SELECT pr.year, COUNT(c.name) 
FROM PurchaseRecord pr 
    INNER JOIN CowPurchaser cp ON pr.purchaserID=cp.purchaserID 
    INNER JOIN Cows c ON pr.cowID=c.cowID 
WHERE cp.name = "FARMLAND" 
GROUP BY pr.year 
HAVING COUNT(c.name) >= 1 
+1

不需要GROUP BY? – jarlh

+0

你是對的。答案已更新 – StanislavL