我有SQL其中将包含一个ID的多个行的表,如下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