Ik probeer om een vraag te schrijven die verslagen zal terugkeren waar het gebied in kolom 1 het zelfde is, maar er is minstens één verschil in specifieke andere kolommen.
Bijvoorbeeld:
Ik wil de kolommen 2 en 4 voor elke waarde in kolom 1 vergelijken. Als er een verschil is, moet ik alle velden in beide rijen retourneren.
This data set
Column1|Column2|Column3|Column4|Column5
Air Filter|Shape|Round|Color|Red
Air Filter|Shape|Panel
Nerf Bar|Finish|Polished|Material|Stainless Steel
Nerf Bar|Finish|Powder Coated|Material|Stainless Steel
Hood|Color|Black|Finish|Powder Coated
Hood|Finish|Powder Coated|Color|Black
zou terugkeren:
Luchtfilter | Vorm | Ronde | Kleur | Rood
Luchtfilter | Vorm | Paneel | NULL | NULL
omdat de waarde in kolom 4 niet overeenkomt tussen de records
en
Hood | Kleur | Zwart | Afwerking | Gepoedercoat
Hood | Finish | Gepoedercoat | Kleur | Zwart
omdat de waarden in kolom 2 en kolom 4 niet overeenkomen tussen de records
Ik kan maar één record krijgen voor elk onderdeel om terug te keren.
Hier is de code die ik heb geprobeerd:
Select *
from [My_Table] as a
where exists(select null from [My_Table] as b
where a.column1 = b.column1
and (a.column2 = b.column2
or a.column3 = b.column3
or a.column4 = b.column4
or a.column5 = b.column5))