我正在尝试计算每个品牌的所有商品,并连接品牌名称+商品数量。
我在SQL Server 2008 R2中有这个查询:
SELECT DISTINCT
Brands.BrandName + ' ' + COUNT(Items.ITEMNO) as ITEMSNO,
Brands.BrandId
FROM Items, Brand_Products, Brands
WHERE
Items.ITEMNO=Brand_Products.ItemNo
AND Brands.BrandId=Brand_Products.BrandId
AND Items.SubcategoryID='SCat-020'
GROUP BY
Brands.BrandId,
Brands.BrandName,
Items.ITEMNO
我正在尝试连接2个字段,但我有2个问题:
nvarchar
和int
时遇到问题。有任何帮助吗? :)
答案 0 :(得分:1)
检索您要查找的字段两次,一次在连接字段答案中,一次单独检索。这应该可以解决您使用DISTINCT的问题。
答案 1 :(得分:1)
这将有效,您可以在CTE中根据BrandId计算物品,然后将其与品牌表一起加入。
WITH ItemCount
AS ( SELECT BrandId
,COUNT(Items.ITEMNO) AS item_Count
FROM Items
,Brand_Products
,Brands
WHERE Items.ITEMNO = Brand_Products.ItemNo
AND Brands.BrandId = Brand_Products.BrandId
AND Items.SubcategoryID = 'SCat-020'
GROUP BY Brands.BrandId)
SELECT b.BrandName + ' ' + CONVERT(VARCHAR(5), Item_Count)
FROM Brands AS b
JOIN ItemCount AS I
ON b.BrandId = i.BrandId
答案 2 :(得分:0)
连接前转换为varchar
'Whatever ' + CONVERT(VARCHAR(8), COUNT(Items.ITEMNO)) + ' Whatever '