Frage zu CASE WHEN
-
Dienstag, 21. Februar 2012 13:59Grüsse,
ich möchte mir in einer Excel Tabelle anzeigen lassen, wenn in einer Datenbank Werte fehlerhaft eintragen wurden.
Beispiel:
CASE
WHEN dbo.Fahrzeuge.C_Status = 'Ausgeliefert'
AND dbo.Fahrzeuge.C_Model = ''
THEN 'Model hinzufügen’
WHEN dbo.Fahrzeuge.C_Status = 'Ausgeliefert'
AND (dbo.Fahrzeuge.Benzintyp = ''
or dbo.Fahrzeuge.Benzintyp is NULL)
THEN 'Fehlerhafter Benzintyp'
WHEN dbo.Fahrzeuge.C_Status = 'Ausgeliefert'
AND (dbo.Fahrzeuge.CO2_Wert = ''
or dbo.Fahrzeuge.CO2_Wert is NULL)
THEN 'Fehlerhafter CO2 Wert'
ELSE 'Datensatz korrekt'
Problem ist, dass ich immer eine Abfrage nach der nächsten bearbeiten muss, d.h. wenn z.B. das Model fehlt bekomme
ich als 1. Fehlermeldung angzeigt, dass ich das Model hinzufügen muss.
Wenn dann noch der CO2 Typ fehlt, bekomme ich diesen als 2. Fehlermeldung angezeigt.
Ich muss also 2 Mal in den Datensatz gehen um Korrekturen vorzunehmen.
Ich suche nach einer Möglichkeit, dass alle Fehlermeldungen auf einmal dargestellt werden, so dass ich den Datensatz nur einmal aufrufen muss und alles ändern kann, was geändert weden muss.
Bei einem Wagen wurde z.B. das Model nicht ausgefüllt und der CO2 Typ fehlt, dann wäre es prima, wenn ich diese Fehlermeldungen direkt auf einen Blick sehen könnte, z.B. Model hinzufügen, CO2 Wert hinzufügen.
Gibt es eine Möglichkeit dies zu bewerkstelligen ?
Im Voraus besten Dank
Tausendwinter
Alle Antworten
-
Dienstag, 21. Februar 2012 14:43
Hallo Tausendwinter!Du könntest mehrere CASE-Konstrukte verknüpfen:CASEWHEN dbo.Fahrzeuge.C_Status = 'Ausgeliefert'THENCASEWHEN dbo.Fahrzeuge.C_Model = ''THEN 'Model hinzufügen ’ELSE ''END +CASEWHEN COALESCES(dbo.Fahrzeuge.Benzintyp, '') = ''THEN 'Fehlerhafter Benzintyp 'ELSE ''END +CASEWHEN COALESCES(dbo.Fahrzeuge.CO2_Wert, '') = ''THEN 'Fehlerhafter CO2 Wert 'ELSE ''ENDELSE 'Datensatz korrekt'ENDEin anderer Ansatz wäre, Prüfungen als einzelne SELECT-Statements zu realisierenund deren Ergebnis in eine (temporäre) Tabelle zu schreiben und diese dannauszugeben.GrüßeThomas--Any problem in computer science can be solved with another layerof indirection. But that usually will create another problem.David Wheeler- Als Antwort vorgeschlagen Stefan FalzMVP Dienstag, 21. Februar 2012 20:40
- Als Antwort markiert Robert BreitenhoferMicrosoft Contingent Staff, Moderator Montag, 26. März 2012 11:31
-
Dienstag, 21. Februar 2012 14:52Danke Dir Thomas :-)

