# UNION mit ORACLE



## StefanLausL (30. August 2006)

Hallo !

Folgendes Problem:

Ich habe ien Select mit Union und möchte die Ergebnisse asu Select 1 und 2 zusammenfassen.

SELECT  Artikel,SUM(Bestand)
From Bestand1
group by Artikel
UNION
SELECT  Artikel,MAX(Bestand)
From Bestand2
group by Artikel

Ergebniss soll die Summe aus SUM(Bestand) + MAX(Bestand)
sein.

Kann mir hier irgendjemand helfen ?
Wäre echt super !!


----------



## Exceptionfault (30. August 2006)

Wie wärs denn hiermit?


```
SELECT  ARTIKEL, SUM( SUMME )
FROM (  
  SELECT  ARTIKEL, SUM( BESTAND ) AS SUMME
  FROM    BESTAND1
  GROUP   BY ARTIKEL
  UNION ALL
  SELECT  ARTIKEL, MAX( BESTAND ) AS SUMME
  FROM    BESTAND2
  GROUP   BY ARTIKEL
)
GROUP BY ARTIKEL;
```


----------



## dorfdepp (30. August 2006)

Hi,

StefanLausL schrieb:
_Folgendes Problem:

Ich habe ien Select mit Union und möchte die Ergebnisse asu Select 1 und 2 zusammenfassen.

SELECT Artikel,SUM(Bestand)
From Bestand1
group by Artikel
UNION
SELECT Artikel,MAX(Bestand)
From Bestand2
group by Artikel

Ergebniss soll die Summe aus SUM(Bestand) + MAX(Bestand)
sein._

Du bist doch schon fast fertig:

Unter Oracle müsste folgendes funktionieren:

SELECT Artikel, SUM(Wert) AS SumPlusMax FROM
(
 SELECT Artikel,SUM(Bestand) AS Wert
 From Bestand1
 group by Artikel
 UNION
 SELECT Artikel,MAX(Bestand) AS Wert
 From Bestand2
 group by Artikel
)
group by Artikel

Ich habe hier leider keine Oracle Datenbank zum Testen, es müsste aber funktionieren.

Es grüsst der 

DORFDEPP


----------



## StefanLausL (30. August 2006)

Super geht !

Vielen Dank


----------



## irgendwer33 (7. August 2008)

Hallo!

Ich habe ebenfalls ein problem mit uion:

Brauche die zwei Summen zu einer aufsummiert in einem Feld und einem Tupel, leider schaffe ich es nicht mit dem beispiel von vorher:

SELECT SUM(gf.monatsgehalt) *15 AS "Zahlung"
FROM personal pl,
     person pn,
     gehaltsstufe gf,
     flugpersonal fl,
     dienstrang dg
WHERE pl.personid = pn.personid
AND   pl.gehaltsstufeid = gf.gehaltsstufeid
AND   pl.personid = fl.personid
AND   fl.dienstrangid = dg.dienstrangid
AND   UPPER (dg.bezeichnung) LIKE '%PILOT%'
UNION ALL
SELECT SUM(gf.monatsgehalt) *14 AS "Zahlung"
FROM personal pl,
     person pn,
     gehaltsstufe gf,
     flugpersonal fl,
     dienstrang dg
WHERE pl.personid = pn.personid
AND   pl.gehaltsstufeid = gf.gehaltsstufeid
AND   pl.personid = fl.personid
AND   fl.dienstrangid = dg.dienstrangid
AND   UPPER (dg.bezeichnung) NOT LIKE '%PILOT%';

Bitte um Hilfe! Danke irgendwer33


----------

