我有这样的查询:
SELECT
*
FROM Product.Stock AS PS
INNER JOIN Product.Product AS P ON PS.ProductId = P.ProductId
INNER JOIN Product.ProductDetail AS PD ON P.ProductId = PD.ProductId
INNER JOIN Product.ProductSize AS PSI ON P.ProductId = PSI.ProductId
我想知道我有多少具有相同SizeId的ProductsId,例如:
在这种情况下,我有两个产品具有相同的ProductId和SizeId,所以我希望得到:2因为我有2个产品的sizeId 1
ProductId来自表:Product.Product SizeId来自表:Product.ProductSize
我怎样才能实现它?此致
答案 0 :(得分:1)
SELECT
PSI.SizeId, COUNT(DISTINCT P.ProductId)
FROM Product.Stock AS PS
INNER JOIN Product.Product AS P ON PS.ProductId = P.ProductId
INNER JOIN Product.ProductDetail AS PD ON P.ProductId = PD.ProductId
INNER JOIN Product.ProductSize AS PSI ON P.ProductId = PSI.ProductId
GROUP BY PSI.SizeId
我假设SizeId列在Product.ProductSize表中。
答案 1 :(得分:0)
使用Having Count
只显示包含多个产品的尺寸而不需要内部连接,因为您已在一个表中包含所有字段:
SELECT SizeId, COUNT(Distinct ProductId)
FROM Product.ProductSize
GROUP BY SizeId
Having Count(Distinct ProductId)> 1
答案 2 :(得分:0)
同意@ Jack的回答,我认为加入似乎在这里是多余的。
SELECT
SizeId, COUNT(DISTINCT ProductId)
FROM Product.ProductSize
GROUP BY SizeId