Einzelnen Beitrag anzeigen

jensw_2000
(Gast)

n/a Beiträge
 
#1

Unterstützt Firebird in Views nicht alle Funktionen / Konstanten ?

  Alt 27. Feb 2013, 17:04
Datenbank: Firebird • Version: 2.1 • Zugriff über: SQL
Hi,

ich habe eine komplexere Abfrage gebaut, die ich dem Kunden nun als View in der Firebird DB zur Verfügung stellen möchte
Die Abfrage wird fehlerfrei ausgeführt und bringt die erwarteten Ergebnisse.

Die SQL Syntax sieht exemplarisch so aus ...

Code:
SELECT ich, du, er, sie, es, Jahr, Monat, Woche, TEST
FROM

SELECT
     ich, du, er, sie, es,
     EXTRACT(YEAR FROM DATUM) as Jahr,
     EXTRACT(MONTH FROM DATUM) as Monat,
     EXTRACT(WEEK FROM DATUM) as Woche,
     LEFT(Nachname,3) as TEST
FROM TABLE1

UNION ALL

SELECT
     ich, du, er, sie, es,
     EXTRACT(YEAR FROM DATUM) as Jahr,
     EXTRACT(MONTH FROM DATUM) as Monat,
     EXTRACT(WEEK FROM DATUM) as Woche,
     LEFT(Surname,3) as TEST
FROM TABLE2

UNION ALL

SELECT
     '' as ich, du, er, sie, es,
     EXTRACT(YEAR FROM DATUM) as Jahr,
     EXTRACT(MONTH FROM DATUM) as Monat,
     EXTRACT(WEEK FROM DATUM) as Woche,
     '' as TEST
FROM TABLE3
)
Wie gesagt, die Abfrage funktioniert, aber den DDL Code für den VIEW kann ich nicht commiten.

Code:
CREATE VIEW TESTVIEW
(ich, du, er, sie, es, Jahr, Monat, Woche, TEST)
AS
SELECT ich, du, er, sie, es, Jahr, Monat, Woche, TEST
FROM

SELECT
     ich, du, er, sie, es,
     EXTRACT(YEAR FROM DATUM) as Jahr,
     EXTRACT(MONTH FROM DATUM) as Monat,
     EXTRACT(WEEK FROM DATUM) as Woche,
     LEFT(Nachname,3) as TEST
FROM TABLE1

UNION ALL

SELECT
     ich, du, er, sie, es,
     EXTRACT(YEAR FROM DATUM) as Jahr,
     EXTRACT(MONTH FROM DATUM) as Monat,
     EXTRACT(WEEK FROM DATUM) as Woche,
     LEFT(Surname,3) as TEST
FROM TABLE2

UNION ALL

SELECT
     '' as ich, du, er, sie, es,
     EXTRACT(YEAR FROM DATUM) as Jahr,
     EXTRACT(MONTH FROM DATUM) as Monat,
     EXTRACT(WEEK FROM DATUM) as Woche,
     '' as TEST
FROM TABLE3
);
Der Firebird Precompiler sagt mir, dass "EXTRACT(W" unbekannt ist.
Die Konstante "WEEK" wird nicht aufgelöst ... Wenn ich statt WEEK testweise DAY oder YEAR einsetze, dann kommt die Meldung nicht.

Als zweite Meldung kommt danach, dass "LEFT(" unbekannt ist.


Warum klappt das nicht?
Was macht Firebird anders, dass ein funktionierender SELECT in einem CREATE VIEW DDL-Statement auf einmal nicht mehr funktioniert?

Grüße
Jens

Geändert von jensw_2000 (27. Feb 2013 um 18:31 Uhr)
  Mit Zitat antworten Zitat