pizza4ever
Lt. Commander
- Registriert
- Apr. 2009
- Beiträge
- 1.690
Hallo,
wenn man als einfaches Beispiel, aus einer Tabelle Bestellungen:
Tabelle Orders
TagDerBestellung, Artikelnummer, ... hundert weitere Spalten
die Daten von zwei Tagen haben will, die an genau nur einem Tag bestellt wurden, geht das nach meinem Wissen so:
(
select distinct Artikelnummer from Orders where TagDerBestellung = 'Tag 1'
except
select distinct Artikelnummer from Orders where TagDerBestellung = 'Tag 2'
)
union
(
select distinct Artikelnummer from Orders where TagDerBestellung = 'Tag 2'
except
select distinct Artikelnummer from Orders where TagDerBestellung = 'Tag 1'
)
wenn ich jetzt wieder die Ursprungsspalten brauche, musss ich noch ein Subselect auf die Ursprungstabelle machen. In meinem einfachen Beispiel geht das sogar noch, bei komplexeren Beispielen empfinde ich es aber als extrem komplex.
Gibts da eine einfachere Lösung?
Ich habe es schonmal mit Exists versucht, aber irgendwie hat das nicht so ganz funktioniert...
Verallgemeinert gesagt will ich aus einer Tabelle anhand verschiedener Spalten und einem Where Statement die Daten rausbekommen, nämlich hier die blaue Ergebnismenge:
(Quelle: https://dwgeek.com/snowflake-set-operators-union-except-minus-and-intersect.html/)
wenn man als einfaches Beispiel, aus einer Tabelle Bestellungen:
Tabelle Orders
TagDerBestellung, Artikelnummer, ... hundert weitere Spalten
die Daten von zwei Tagen haben will, die an genau nur einem Tag bestellt wurden, geht das nach meinem Wissen so:
(
select distinct Artikelnummer from Orders where TagDerBestellung = 'Tag 1'
except
select distinct Artikelnummer from Orders where TagDerBestellung = 'Tag 2'
)
union
(
select distinct Artikelnummer from Orders where TagDerBestellung = 'Tag 2'
except
select distinct Artikelnummer from Orders where TagDerBestellung = 'Tag 1'
)
wenn ich jetzt wieder die Ursprungsspalten brauche, musss ich noch ein Subselect auf die Ursprungstabelle machen. In meinem einfachen Beispiel geht das sogar noch, bei komplexeren Beispielen empfinde ich es aber als extrem komplex.
Gibts da eine einfachere Lösung?
Ich habe es schonmal mit Exists versucht, aber irgendwie hat das nicht so ganz funktioniert...
Verallgemeinert gesagt will ich aus einer Tabelle anhand verschiedener Spalten und einem Where Statement die Daten rausbekommen, nämlich hier die blaue Ergebnismenge:
(Quelle: https://dwgeek.com/snowflake-set-operators-union-except-minus-and-intersect.html/)
Zuletzt bearbeitet: