Verwenden von 2008 R2.Wie finden Sie ungepaarte Zeilen in TSQL?
Meine Tabelle sollte einige Zeilen enthalten, die gepaart sind - eine Cancel-Transaktion und eine Add-Transaktion, aber wir haben einige schlechte Daten, wo es nur eine Cancel gibt.
Ich versuche, diese zu identifizieren und sie zu beseitigen. Ich habe den folgenden Code ausprobiert, aber SQL hat den Fehler "Alle Abfragen, die mit einem UNION-, INTERSECT- oder EXCEPT-Operator kombiniert werden, muss eine gleiche Anzahl von Ausdrücken in ihren Ziellisten enthalten."
Wie kann ich diese nicht übereinstimmenden Zeilen identifizieren?
select *
from dbo.mytable t
where typename = 'Cancel'
except
Select *
from dbo.mytable t1
inner join dbo.mytable t2
on t1.id = t2.id
where t1.typename = 'Cancel'
and t2.typename = 'Add'
Danke - sie beide arbeiteten (jetzt, warum habe ich nicht daran gedacht?). Die erste Abfrage, die Sie vorgeschlagen haben, gab 3 eindeutige Zeilen zurück, während die zweite 10 Zeilen zurückgab, die Duplikate enthielten (für diese ID). – DeveloperM