Einzelnen Beitrag anzeigen

BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
849 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: SQL-Ausdruck gibt zu wenige DS zurück

  Alt 5. Mär 2017, 10:54
Danke an alle. Die leicht abgewandelte Lösung aus Beitrag #4 von TBx leifert genau mein gewünschtes Ergebnis:

Code:
SELECT a.*
  FROM WERTE a
  WHERE (a.USERID = 1)
     OR ((a.USERID = 0) AND (NOT EXISTS (SELECT name2 FROM WERTE b WHERE b.USERID = 1 AND b.name1 = a.name1 and b.name2 = a.name2)))
Um die Aufgabe nochmal klarer zu machen. Hier ein Beispiel:

Gegeben ist:

Code:
Name1       Name2   UserID Wert
Gehalt     Bonus       0   200
Gehalt     Bonus       1   300
KFZ        Tankkarte   0    50   
KFZ        Tankkarte   7   120
KFZ        Waschkarte  1    15
Haben möchte ich alles für User 1 und wenn es keinen User 1 gibt, dafür die Einträge mit User 0:

Code:
Name1       Name2   UserID Wert
Gehalt     Bonus       1   300
KFZ        Tankkarte   0    50   
KFZ        Waschkarte  1    15
Die Zeile mit einer UserID 0 ist sozusagen der Default-Eintrag, wenn es zu einem User (z.B. 1) keinen Eintrag gibt.

PS: Diese "schwachsinnige" Tabellenstruktur (eine große Tabelle, wo alles reingeworfen ist) stammt nicht von mir. Ich darf sie nur benutzen...

Geändert von BlueStarHH ( 5. Mär 2017 um 11:00 Uhr)
  Mit Zitat antworten Zitat