2017-04-04 2 views
0

Ich habe eine Tabelle mit dem Namen VWDRSSTA und es hat die folgenden Felder SYSTEM, EREIGNIS; DATUM_ZEIT, ANTRAGSNUMMER, VORGANGSNUMMER, VERS_NR_INT, DOK_ART, DUNKELerstellen SQL-Ansicht mit Fall

Ich suche einen Blick auf diese Tabelle mit einem Filter in zwei Feldern DOK_ART und DUNKEL mit CASE-Anweisung zu erstellen. Hier ist, was ich versucht habe

CREATE VIEW VWDRSSTA_VIEW As 
SELECT SYSTEM, EREIGNIS, DATUM_ZEIT, ANTRAGSNUMMER, VORGANGSNUMMER, VERS_NR_INT, 
CASE 
WHEN EREIGNIS = 'EIN-ES' AND DOK_ART = 'EN' Then 'EN' 
ELSE '' 
END 
CASE 
WHEN EREIGNIS = 'POL_AN' AND DUNKEL = 1 Then 1 
ELSE '' 
END 
FROM VWDRSSTA; 

Was schief geht. Wie kann ich das oben genannte erreichen?

+0

Zeigen Sie uns den genauen Fehlercode Sie bekommen. Es scheint jedoch, dass Sie vergessen, de 'case column' zu nennen. Wenn Sie eine View erstellen, müssen alle Spalten einen eindeutigen Namen haben (in den meisten dbms). Sie müssen 'CASE WANN EREIGNIS = 'EIN-ES' und DOK_ART = 'EN' ändern Dann 'EN' ELSE '' END' bis 'CASE WANN EREIGNIS =' EIN-ES 'UND DOK_ART =' EN 'Dann 'EN' ELSE '' ENDE AS MyCaseColumn1, 'Beachten Sie auch das letzte Komma – Rumpelstinsk

+0

Welches DBMS benutzen Sie? Postgres? Orakel? –

+0

Außerdem fehlt zwischen diesen CASE-Ausdrücken ein Komma. –

Antwort

2

Try this:

CREATE OR REPLACE FROCE VIEW VWDRSSTA_VIEW As 
SELECT SYSTEM, EREIGNIS, DATUM_ZEIT, ANTRAGSNUMMER, VORGANGSNUMMER, VERS_NR_INT, 
     CASE 
     WHEN EREIGNIS = 'EIN-ES' AND DOK_ART = 'EN' 
     THEN 'EN' 
     ELSE '' 
     END AS DOK_ART, 
     CASE 
     WHEN EREIGNIS = 'POL_AN' AND DUNKEL = 1 
     THEN 1 
     ELSE '' 
     END AS DUNKEL   
    FROM 
     VWDRSSTA;