как получить строки одного типа, но удовлетворяющие двум условиям - PullRequest
0 голосов
/ 03 октября 2019

Привет всем, я надеюсь, что вы можете помочь мне, у меня есть таблица документов:
enter image description here
Я хотел бы получить фут 1 и фут 5, так как он имеет тип 2 dvvn иrc

строка 1: фут 1 и строка 2: фут 5

Ответы [ 2 ]

2 голосов
/ 03 октября 2019

Сгруппируйте по номеру и установите условие в предложении HAVING:

select number
from tablename
where type1 = 'ft' and type2 in ('dvvn', 'rc')
group by number
having count(distinct type2) = 2

Если вы хотите то же самое для всех значений type1:

select type1, number
from tablename
where type2 in ('dvvn', 'rc')
group by type1, number
having count(distinct type2) = 2
0 голосов
/ 03 октября 2019

Я считаю, что это соответствует требованиям. Моя версия будет работать для двух или более совпадений, переключитесь на = 2 в конце, если вам нужно, чтобы было строго два совпадения.

SELECT T1.type1, T1.number, T2.type1, T2.number
FROM mytable T1
INNER JOIN mytable T2
   ON T1.type2 = T2.type2
   AND NOT (T1.type1 = T2.type1 AND T1.number = T2.number)
GROUP BY T1.type1, T1.number, T2.type1, T2.number
HAVING COUNT(*) >=2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...