wieder SUM Problem in MYSQL

emmis

Grünschnabel
Ich habe ein Problem mit SUM. Mein Selectstatement funktioniert wunderbar und zeigt eigentlich alles an, was ich so brauche, ergänze ich jedoch ein SUM, dann gibts eine leere Menge.

Das Script ohne SUM:

PHP:
$sql_land = "SELECT ".SHOP2VERSANDZONELANDTAB.".id_versandzoneland, ".LANDTAB.".lang, 
".LANDTAB.".id_land FROM ".LANDTAB." 
LEFT JOIN (".SHOP2VERSANDZONETAB." LEFT JOIN (".SHOP2VERSANDZONELANDTAB.") ON (".SHOP2VERSANDZONELANDTAB.".land_id=".LANDTAB.".id_land)) 
ON (".SHOP2VERSANDZONELANDTAB.".zone_id = ".SHOP2VERSANDZONETAB.".id_versandzone and ".SHOP2VERSANDZONETAB.".versandart_id = $versandart_id) order by lang";

und nun MIT:

PHP:
$sql_land = "SELECT ".SHOP2VERSANDZONELANDTAB.".id_versandzoneland, ".LANDTAB.".lang, 
".LANDTAB.".id_land , sum(".SHOP2VERSANDZONELANDTAB.".id_versandzoneland) as sum_zoneland FROM ".LANDTAB." 
LEFT JOIN (".SHOP2VERSANDZONETAB." LEFT JOIN (".SHOP2VERSANDZONELANDTAB.") ON (".SHOP2VERSANDZONELANDTAB.".land_id=".LANDTAB.".id_land)) 
ON (".SHOP2VERSANDZONELANDTAB.".zone_id = ".SHOP2VERSANDZONETAB.".id_versandzone and ".SHOP2VERSANDZONETAB.".versandart_id = $versandart_id) order by lang";

woran liegt das? hat jemand einen schimmer?
 
hi,

da du ein Left Join nimmst, schau mal ob irgendwo in deiner berechnung NULL rauskommt, dann ist die summe immer NULL, ich hatte was ähnliches und musste das der Engine sagen was sie machen soll wenn irgendwo NULL steht. Ich weiß nicht ob es sowas bei mysql gibt.

denn wenn du sowas rechnest, kommt NULL raus:
PHP:
select 1 + NULL from dual

in Oracle macht man dann folgendes:

PHP:
select nvl (1 + NULL, 0) from dual

Kurz zur erklärung dual, ist eine Pseudo Tabelle in Oracle mit deren Hilfe man funktionen testen kann.
NvL ist die angesprochene Funktion.

Viel Glück
 
Zurück