连接两个表我有两个表SQL Server查询上正确
一个是债权表,另一个包含编辑
我被ClaimID的
加入我只希望有一个205 ClaimIDs编辑,但不是913.我需要为连接做些什么?
所以可以说是编辑E和进出口检验e.RuleID可以有205,但不是913(每个ClaimID的可以有无限的编辑)
连接两个表我有两个表SQL Server查询上正确
一个是债权表,另一个包含编辑
我被ClaimID的
加入我只希望有一个205 ClaimIDs编辑,但不是913.我需要为连接做些什么?
所以可以说是编辑E和进出口检验e.RuleID可以有205,但不是913(每个ClaimID的可以有无限的编辑)
SELECT * FROM Claims AS c
WHERE EXISTS (
SELECT * FROM Edits AS e1
WHERE c.ClaimID = e1.ClaimID
AND e1.RuleId=205)
AND NOT EXISTS (
SELECT * FROM Edits AS e2
WHERE c.ClaimID = e2.ClaimID
AND e2.RuleId=913)
SELECT Edit205.ClaimID
FROM Edits Edit205
LEFT JOIN Edits Edit913
ON Edit205.ClaimID = Edit913.ClaimID AND Edit913.RuleID = 913
WHERE Edit205.RuleID = 205
AND Edit913.ClaimID IS NULL
工作sqlfiddle here
这样做:
SELECT *
FROM Claims C
WHERE NOT EXISTS(SELECT 1
FROM Edits
WHERE Edit = 913 AND ClaimId = C.ClaimId)
AND EXISTS (SELECT 1
FROM Edits
WHERE Edit = 205 AND ClaimId = C.ClaimId)
小心做一个sqlfiddle?或者可能充实你的问题,因为它似乎是一个简单的'join'查询。 – Sashenka
谷歌的SQL教程和阅读1或2页,然后尝试写一个查询,如果你有问题发布在这里。 – jurgenreza
@Sashenka,它不是一个内部联接 - 在一个索赔上有多个编辑。 OP正在寻找具有205编辑但不是913编辑的声明。 – PinnyM