Firebird: Union all

ny_unity

SQL-Guru
Beiträge
193
Hallo Leute,

habe ein Problem mit Union all im Firebird-SQL.

Folgender Aufbau des ersten select:
Code:
Select * from (select S1, count(S2) as S2 from (Select S3,S4 from t1 where S3=1) t2) group by t2.S1
Folgender Aufbau des zweiten Selects:
Code:
Select 'Summe:' from rdb$database
Union all:
Code:
Select * from (select S1, count(S2) as S2 from (Select S3,S4 from t1 where S3=1) t2) group by t2.S1
UNION ALL
Select 'Summe:' from rdb$database
Folgende Fehlermeldung:
Dynamic SQL Error
SQL error code = -104
Invalid command
count of column list and variable list do not match
(-1)
Code:
Wenn ich zum Test folgendes mache:
Select Personal.Personalnr from Personal where Personal.Personalnr = 1
UNION ALL
Select 'Summe' from rdb$database

Funktioniert alles... Habt Ihr eine Idee was ich falsch mache? Danke und Gruß

Erik
 
Werbung:
oh mein gott... man sollte erstmal das statement zu end emachen und dann testen, ich bin schritt für schritt durchgegangen, aber es klappt, danke für die Hilfe!
 
Habe zum aktuellen Sachverhalt noch ein Problem, und zwar mit OVER()
Im MSSQL habe ich folgendes:
Code:
cast(cast(( 10000 * cast(t5.ANZAHLANWESEN as Numeric(7,3)) / sum(t5.ANZAHLANWESEN)  OVER () ) AS NUMERIC(7,3)) / 100 AS NUMERIC(5,2)) AS ANTEILANWESEN
Aber so funktioniert das nicht im Firebird, obwohl OVER() ja ein bekannter Befehl ist....
habe schon gegoogelt, aber das Over ist nicht ordentlich im Firebird erklärt :(
Ich möchte halt unter ANTEILANWESEN die jeweiligen Prozente am gesamten ausrechnen, klappt nicht -.-"

Danke

Erik
 
hmm, hab das over gelöst bzw. umgangen, in dem ich noch eine unterabfrage gebaut habe, die mir die Summe aller Datensätze anzeigt, jetzt klappts... trotzdem danke für die Hilfe!
 
Mal allgemeine Vermutung: Vielleicht wird OVER() von Firebird nicht unterstützt? Oder nicht unterstützt, wie du es dir vorstellst? Was auch erklären würde, warum das schlecht bis gar nicht dokumentiert ist...
 
Werbung:
Heißt ja aber noch nicht, dass es 100%ig unterstützt wird. Ich müsste auch schwindeln, ob es überhaupt im SQL Standard drin steht und definiert ist......
 
Zurück
Oben