gyanendragope Ответов: 2

MS SQL запрос для поиска общих строк в одной таблице


I am in need of a query to find the common rows in one tables.

Input
 -----------------------------------------------------------------
ID	Name	         ObjectName 
1	StationTypeB          S011
1	StationTypeA          S013
1	StationTypeA          S014 
1       StationTypeA          S17
2	AreaA                 S013
2	AreaA	              S014
2	AreaA	              B015
2	AreaB	              S013



How to find the  common  ObjectName of StationTypeA  and  AreaA
Output
 -----------------------------------------------------------------
ID	Name	         ObjectName  
2	AreaA               S013
2	AreaA	           S014


Что я уже пробовал:

How to find the  common  ObjectName of StationTypeA  and  AreaA
Output

2 Ответов

Рейтинг:
2

David_Wimbley

Находит все записи с более чем 1 строкой

SELECT Id, Name, ObjectName, COUNT(*) FROM YourTableName
GROUP BY Id, Name, ObjectName
HAVING COUNT(*) > 1


Отображает результаты, как вы опубликовали
SELECT Id, Name, ObjectName FROM YourTableName
GROUP BY Id, Name, ObjectName
HAVING COUNT(*) > 1


HAVING COUNT(*) > 1 показывает строки, которые появляются более 1 раза в зависимости от группы по.


Dave Kreskowiak

Я думаю, что он ищет строки, в которых разные элементы имен имеют одинаковые значения ObjectName.

ID	Name	         ObjectName
1	StationTypeA          S013
1	StationTypeA          S014
2	AreaA                 S013
2	AreaA	              S014
2	AreaB	              S013

Я могу ошибаться. ОП не совсем ясно понимает, что он имеет в виду под "общими рядами".

Рейтинг:
0

nane aa

SELECT Id, Name, ObjectName FROM YourTableName where ObjectName in(SELECT ObjectName Where Name='StationTypeA') and Name='AreaA'


этот запрос даст следующий вывод
ID	Name	         ObjectName  
2	AreaA              S013
2	AreaA	           S014