我想要做的事情听起来很简单,但无法弄明白。我有一个包含report_number字段和report_type字段的表。 report_number字段可以包含相同的“报告编号”以及report_type字段。我将提供一些数据来更好地解释我需要做什么。
report_number report_type
1 A
2 A
2 B
1 A
3 A
3 A
3 A
4 C
4 C
我需要查询='A'的报告,但不要查询同样具有与之关联的报告类型B的SAME报告编号。我想得到的结果是报告#1和3。
报告编号可以包含与之关联的不同report_types。
谢谢!
答案 0 :(得分:4)
尝试:
select distinct(report_number)
from reports
where report_type='A' and report_number not in (select report_number from reports where report_type='B')
答案 1 :(得分:0)
SELECT DISTINCT a.Report_Number
FROM YourTable a
LEFT JOIN YourTable b
ON a.Report_Number = b.Report_Number
AND a.Report_Type <> b.Report_Number
-- OPTIONAL
AND b.Report_Type = 'B'
WHERE b.Report_Type IS NULL
-- OPTIONAL
AND a.Report_Type = 'A'
修改强>
到目前为止,已发布了3种采用不同方法的解决方案。检查此Link以查看哪个适合您的RDBMS。