(Gast)
n/a Beiträge
|
Unterstützt Firebird in Views nicht alle Funktionen / Konstanten ?
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)
|