У меня есть таблица в SQL, который будет содержать несколько строк для одного идентификатора, как показано нижеSQL выберите строки, которые имеют одно значение, но не другой
accountid Productname
1 GL
1 IP
1 MI
2 GL
2 IP
2 PA
3 MI
3 CP
3 IP
4 GL
4 CP
4 CI
Я хочу, чтобы иметь возможность выбрать все учетные записи, которые имеют определенные продукты но не другие. Например, все, что есть IP или GL, но не MI, используя образец таблицу выше, будет возвращен счет 2 и 4.
SELECT ccx_accountidname
FROM (
SELECT ccx_accountidname, ccx_productname
FROM Filteredccx_leadresearch
WHERE ccx_productname IN ('GL','IP')
AND ccx_accountidname IS NOT NULL
) AS T
WHERE ccx_productname NOT IN ('MI')
ORDER BY ccx_accountidname
и
SELECT DISTINCT LR1.ccx_accountidname
FROM Filteredccx_leadresearch LR1
LEFT JOIN Filteredccx_leadresearch LR2 ON LR1.ccx_accountid = LR2.ccx_accountid
AND LR2.ccx_productname IN ('GL', 'IP')
WHERE LR1.ccx_productname NOT IN ('MI')
AND LR1.ccx_accountidname IS NOT NULL
ORDER BY LR1.ccx_accountidname
Оба дают в основном те же результаты, есть ли это можно сделать?
Заранее спасибо за любую помощь
это ТОЛЬКО две колонки? – scsimon
Нет много столбцов, но это единственные 2, которые действительно меня интересуют в данный момент. – SnowSheep
Другие столбцы дают вам возможность поворота, но это зависит от столбцов. – scsimon