我有一个包含大量数据的表,我需要获取IdMod,TableName和FieldName列在2行或更多行中匹配的行.
查询:
SELECT DISTINCT aa.Id, aa.IdMod, aa.TableName, aa.FieldName, aa.OldValue, aa.NewValue, aa.Origin, aa.Destination, aa.CreationDate, aa.Discard
FROM Process aa
INNER JOIN (
SELECT IdMod, TableName, FieldName
FROM Process
GROUP BY IdMod, TableName, FieldName
HAVING COUNT(*) > 1
) bb
ON aa.IdMod = bb.IdMod AND aa.TableName = bb.TableName AND aa.FieldName = bb.FieldName
WHERE Destination='All' OR Destination=@dest OR Origin=@dest
ORDER BY IdMod,TableName, FieldName
Run Code Online (Sandbox Code Playgroud)
有了这个查询,我得到它:

但我想只有在Origin列不相同时才能得到它.我的意思是,在这个结果中我想得到除了第6行和第7行之外的所有内容,因为IdMod,TableName和FieldName匹配,但是Origin也匹配.同样的方式,我不想要第8行和第9行.但是,我想要第3,4和5行,因为它们中至少有一个具有不同的Origin.当然,我想要1和2,因为Origin不同.
我该怎么做?