Unterabfrage Anstelle von temporärer Tabelle

exzel

Datenbank-Guru
Beiträge
170
Hallo zusammen,

lassen sich folgende SELECT-Abfragen über eine Unterabfrage lösen? Derzeit verwende ich eine temporäre Tabelle und die wird im Anschluss mit einem weiteren SELECT abgefragt. Aber geht das auch ohne temporäre Tabelle?

Code:
CREATE TEMPORARY TABLE TMP
(SELECT zw * beitrag as ergebnis FROM Seite1 WHERE gruppe = '141' AND version = '1' AND aktiv = 1) UNION ALL
(SELECT zw * beitrag as ergebnis FROM Seite2 WHERE gruppe = '141' AND version = '1' AND aktiv = 1) UNION ALL
(SELECT zw * beitrag as ergebnis FROM Seite3 WHERE gruppe = '141' AND version = '1' AND aktiv = 1);

SELECT SUM(ergebnis) as ergebnis FROM TMP;

Gruß und Dank!
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.028
Hallo zusammen,

lassen sich folgende SELECT-Abfragen über eine Unterabfrage lösen? Derzeit verwende ich eine temporäre Tabelle und die wird im Anschluss mit einem weiteren SELECT abgefragt. Aber geht das auch ohne temporäre Tabelle?

Code:
CREATE TEMPORARY TABLE TMP
(SELECT zw * beitrag as ergebnis FROM Seite1 WHERE gruppe = '141' AND version = '1' AND aktiv = 1) UNION ALL
(SELECT zw * beitrag as ergebnis FROM Seite2 WHERE gruppe = '141' AND version = '1' AND aktiv = 1) UNION ALL
(SELECT zw * beitrag as ergebnis FROM Seite3 WHERE gruppe = '141' AND version = '1' AND aktiv = 1);

SELECT SUM(ergebnis) as ergebnis FROM TMP;

Gruß und Dank!


Das sieht nach Syntaxfehler aus... select zw * beitrag ...


Was Du suchst ist in etwa select sum(col) from (select * from tab1 union all select * from tab2) bla;
 

exzel

Datenbank-Guru
Beiträge
170
Hallo und danke für die Antwort,

also ich hatte den Code getestet und dann ging er.

Egal. Frage ist beantwortet.

Danke!
 

akretschmer

Datenbank-Guru
Beiträge
9.028
Hallo und danke für die Antwort,

also ich hatte den Code getestet und dann ging er.

Egal. Frage ist beantwortet.

Danke!

Ah ja, war wohl parse error meinerseits. War irgendwie auf das * und andere Spalten ohne Komma fixiert ohne zu erkennen, daß du da 2 Spalten multiplizierst. Sorry ;-)
 
Werbung:
Oben