[sql] NULL in Addition bringt alles durcheinander

Moin, ich hab hier mal nen dickes prob.
Dieser query sll mir alle Foren liefern mit id und die zusammengezählte
stat_posts von sich und seiner Unterforen (nur eine Ebene tiefer).

Code:
SELECT
    `id`, `stat_posts` + (
        SELECT SUM(`stat_posts`) FROM `sj_forums` A WHERE A.`sub`=Z.`id`
    ) AS `absstat_posts`
FROM `sj_forums` Z
WHERE `sub`=0
GROUP BY `id`
Hat ein Unterforum in der Auflistung aber keine weitere Unterforen,
gibt die Unterabfrage NULL zurück. Und irgendeine Zahl + NULL
gibt leider NULL.

Geht noch schlimmer, denn das hier:
Code:
SELECT
    `id`, `stat_posts` + (IFNULL(
        SELECT SUM(`stat_posts`) FROM `sj_forums` A WHERE A.`sub`=Z.`id`
    ), 0) AS `absstat_posts`
FROM `sj_forums` Z
WHERE `sub`=0
GROUP BY `id`
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT SUM( `stat_posts` ) FROM `sj_forums` A WHERE A. `sub` = Z. `id` ) , 0 ) ' at line 1

ist ein verdammter Griff ins Klo...
Danke, falls wer ne Lösung parat hat.

P.S.: Mein letztes Thema zu SQL wurde in Webdesign geschoben, wobei
SQL damit rein gar nichts zutun hat. Ein Unterforum für Datenbanken
habt ihr ja nicht, aber so einige kennen sich hier damit aus.
 
Klammer von IFNULL falsch gesetzt? :rolleyes:

Probier mal folgendes:

Code:
SELECT
    `id`, `stat_posts` + IFNULL(
        (SELECT SUM(`stat_posts`) FROM `sj_forums` A WHERE A.`sub`=Z.`id`)
    , 0) AS `absstat_posts`
FROM `sj_forums` Z
WHERE `sub`=0
GROUP BY `id`
 
Zurück
Oben