Fehler im "Case", aber wo?

gummela

Neuer Benutzer
Beiträge
2
SELECT
to_char(greif_termin,'dd.mm.yyyy') as datum,
psk_lhm_id as packstück,
count(*) as anz_picks_pro_psk,
lok_nr as lagerzone,
CASE to_char(greif_termin,'hh24:mi')
WHEN to_date(to_char(greif_termin, 'hh24:mi'), 'hh24:mi')
between to_date('06:30', 'hh24:mi')and to_date('14:30', 'hh24:mi') THEN 'F'
WHEN to_date(to_char(greif_termin, 'hh24:mi'), 'hh24:mi')
between to_date('14:30', 'hh24:mi')and to_date('22:30', 'hh24:mi') THEN 'S'
ELSE 'N'
END
FROM PICKET


Fehlermeldung:
ORA-00905: Schlüsselwort fehlt
00905. 00000 - "missing keyword"
 
Werbung:
ORA-00905: Schlüsselwort fehlt

Nur weil Oraggle MyZettelkasten aufgekauft hat macht es noch keinen Sinn, das eine mit dem anderen zu verbuchseln. Du fragst in MySL und zeigst Oraggle-Fehler. Feuer, Wasser, ... , paßt nicht zusammen.

Das gezeigte SQL-Statement ist entweder unvollständig (warum zeigst Du uns die halbe Wahrheit?) oder aber vollständig syntaktisch falsch. Hint: Aggregation ohne Gruppierung.
 
Werbung:
Zur Vervollständigung:

Hinter CASE kann etwas stehen und ein dafür vorgesehenes Beispiel könnte so aussehen:

<code>
case param1
when 'A'
then
--do the A code
when 'B'
then
--do the B code
else
--do the fallback code
end case;
</code>

Oder eben, wie es im obigen Beispiel sinnvoller wäre:
<code>
case
when param1 = 'A'
then
--do the A code
when param1 = 'B'
then
--do the B code
else
--do the fallback code
end case;
</code>

Lg
 
Zurück
Oben