我有一张如下表所示的表格:
ID OrderId IssueId EmployeeId 1 123 123 12098 2 124 123 12098 3 125 123 12098 4 123 124 12098 5 124 124 12098 6 125 124 12098 7 123 126 12098 8 124 126 12098 9 125 126 12098
针对每个OrderId,为IssueId插入了记录。现在我想过滤哪个IssueId与OrderId不匹配。
即上面的示例数据orderId 125,但是issueId 126.我只需要从表中过滤掉这些数据。
我正在使用以下查询
Select OrderId,IssueId,EmployeeId from IssuesTable where OrderId != IssueId
我得到以下结果。
OrderId IssueId EmployeeId 123 126 12098 124 126 12098 125 126 12098
由于每个订单ID都有一个问题,因此缺少issueId会得到3个。
任何人都可以帮助我解决这个问题。 ??
答案 0 :(得分:0)
答案 1 :(得分:0)
如果您想在任何一行中找到与orderid
不匹配的Issueid
,请尝试此操作
select orderid
from yourtable
group by orderid
having count(case when orderid = IssueId then 1 end) = 0
如果您想选择IssueId
以及OrderId
,请使用此
SELECT OrderId,IssueId
FROM Yourtable A
WHERE EXISTS (SELECT 1
FROM Yourtable B
WHERE a.orderid = b.orderid
GROUP BY orderid
HAVING Count(CASE WHEN orderid = issueid THEN 1 END) = 0)