给出下表
DECLARE @YourTable TABLE (id int, PLU int, Siteid int, description varchar(50))
INSERT @YourTable VALUES (1, 8972, 2, 'Beer')
INSERT @YourTable VALUES (2, 8972, 3, 'cider')
INSERT @YourTable VALUES (3, 8972, 4, 'Beer')
INSERT @YourTable VALUES (4, 8973, 2, 'Vodka')
INSERT @YourTable VALUES (5, 8973, 3, 'Vodka')
INSERT @YourTable VALUES (6, 8973, 4, 'Vodka')
我试图编写一个查询,该查询将为我提供一个给定的plu值,其中所有行具有多个不同的值。
因此,在上面的示例中,我想返回行1,2,3,因为它们既有'苹果酒'值又有'啤酒'值,plu为'8972'。
我以为“ GROUP BY”和“ HAVING”是最好的选择,但我似乎无法使其正常工作。
SELECT P.PLU, P.Description
FROM @YourTable P
GROUP BY P.PLU, P.Description
HAVING COUNT(DISTINCT(P.DESCRIPTION)) > 1
任何帮助表示赞赏。
答案 0 :(得分:4)
如果您在描述上进行@anonymous
,则不应该GROUP BY
进行描述(那样的话,它总是1)。尝试这样的事情:
DISTINCT COUNT