2014-04-27 44 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; 
相关问题