查询以查找父级在SQL Server中是否具有多个项目

时间:2018-07-07 09:13:32

标签: sql-server sql-server-2008 sql-server-2005

我有下表。如何查找父母是否有多个项目。

例如:父级1具有项ABC和BBC,因此查询应显示“(多个)”而不是项名称。 父级5只有一个项目,应该显示项目名称。

Price      |    Item    |  Parent
-----------|------------|-------------
20         |   ABC      |   1
10         |   BBC      |   1
5          |   CBC      |   5
21         |   DDB      |   6
17         |   BDD      |   6
31         |   DBB      |   6

我创建了以下似乎不起作用的查询。

SELECT CASE WHEN COUNT(*) > 1 THEN '(Multiple)' ELSE Item END FROM 
(SELECT COUNT(*), Item FROM Table WHERE Parent = @parent 
GROUP BY Item) Table GROUP BY Item

1 个答案:

答案 0 :(得分:1)

在下面检查这个小提琴

SELECT distinct p.parent, case when p1.item is not null then 'MULTIPLE'
       else p.item end as txt
FROM product p 
left JOIN product p1 on p1.parent=p.parent and p1.item<>p.item
WHERE p.Parent = 6 --@parent

http://sqlfiddle.com/#!18/e3612/29/0