2014-04-27 48 views
0

我正在模擬一個商店的數據庫。我有一個名爲ProductsTbl的表,類似於所有可供購買的產品,以及一個名爲ProductType的列,將該項標識爲遊戲或控制檯。 我想統計每個控制檯適合的遊戲數量。遊戲有一個叫做平臺的領域,它是遊戲運行的控制檯。SQL使用同一個表中的多列進行計數

SELECT 
ProductsTbl.ProductID, 
ProductsTbl.ProductName, 
ProductsTbl.Manufacturer, 
count(ProductsTbl.ProductName = ProductsTbl.Platform) 
FROM productstbl 
WHERE ProductsTbl.ProductType = 'Console'; 

這是唯一的鉛我迄今爲止..

回答

2

你需要加入表本身獲得的遊戲列表。如果(看起來)將遊戲連接到控制檯的事情是遊戲的平臺設置爲控制檯的產品名稱,這應該這樣做;

SELECT p1.productid, p1.productname, p1.manufacturer, COUNT(p2.productid) games 
FROM productstbl p1 
LEFT JOIN productstbl p2 
    ON p2.producttype = 'game' AND p2.platform = p1.productname 
WHERE p1.producttype = 'Console' 
GROUP BY p1.productid, p1.productname, p1.manufacturer; 
相關問題