Yesudass Moses Ответов: 1

Запрос, чтобы узнать, есть ли у родителя несколько элементов в SQL server


У меня есть следующая таблица. Как я могу найти, если у родителя есть несколько элементов?

Например: родитель 1 имеет элементы ABC и Би-би-си, таким образом, запрос должен отображать '(множественные)' вместо того, чтобы показывать имена элементов. Родитель 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

#realJSOP

Я думаю, что это сделает это:

SELECT   parent, 
         count(*) AS [Count] 
FROM     dbo.[mytable] 
GROUP BY parent 
HAVING   COUNT(Parent) > 1


ОБНОВЛЕНИЕ ================================

;WITH cte AS
(
SELECT   parent, 
         SUM(1) AS quantity
FROM     dbo.[parents] 
GROUP BY parent 
)
SELECT a.parent,
       MAX(CASE WHEN b.quantity=1 THEN a.item ELSE 'Multiple' END) AS Item
FROM   dbo.[parents] AS a
FULL JOIN cte AS b ON b.parent = a.parent
GROUP BY a.parent
ORDER BY a.parent


Yesudass Moses

Тем не менее, как я получу имя элемента или "несколько"

#realJSOP

Ради всего святого - будь программистом. Я обновил свой ответ.