Ich habe hier drei Sql-Select's, die, meiner Meinung nach alle, das gleiche Ergebnis bringen sollten. Dem ist aber nicht so:
Code:
select sum(menge),count(*) from (select menge from daten.bewegung_2012 where artnr='380802' and datum>'20111227'
union select menge from daten.bewegung_2011 where artnr='380802' and datum>'20111227'
) as x
liefert die Menge 10 bei 3 Datensätze (ist arg wenig)
#2:
Code:
select sum(menge),count(*) from (select artnr,datum,menge from daten.bewegung_2012
union select artnr,datum,menge from daten.bewegung_2011
) as x where artnr='380802' and datum>'20111227'
liefert die Menge 20 bei 10 Datensätze (auch zu wenig)
#3:
Code:
select sum(menge),count(*) from (select artnr,datum,refnr,menge from daten.bewegung_2012
union select artnr,datum,refnr,menge from daten.bewegung_2011
) as x where artnr='380802' and datum>'20111227'
liefert die Menge 22 bei 12 Datens�tzen (das ist korrekt)
Die Tabellen Bewegung_2012/Bewegung_2011 haben ein pKey (Artnr,datum,refnr), der sich nur in der RefNr unterscheidet.
Gibt es eine logische Erklärung, warum man 3 verschiedene Ergebnisse bei (scheinbar) gleichen Abfragen bekommt.
Variation zu #1:
Code:
select sum(menge),count(*) from (select menge from daten.bewegung_2012 where artnr='380802' and datum>'20111227'
--union select menge from daten.bewegung_2011 where artnr='380802' and datum>'20111227'
) as x
mal ohne UNION. Ergibt auch ein korrektes Ergebnis
Lesezeichen