Databases Reference
In-Depth Information
where rl.type = 2
group by rl.customerNo)b
on a.customerNo = b.customerNo
group by a.riskID
Bild 15.1■
Abfrage mit NULL-Werten
Es ofenbart sich ein Problem: In den Zeilen mit
NULL
in den Retourenspalten wird kein
Nettoertrag errechnet (Bild 15.1).
NULL
-Werte werden komplett ignoriert. Also müssen Sie
diese
NULL
-Werte in eine echte Null (0) umwandeln, die bei Additionen und Subtraktionen
eingesetzt werden kann. Dafür verwenden Sie den Befehl
ISNULL
. Wenn der Inhalt einer
Spalte oder das Ergebnis einer Berechnung
NULL
ist, dann wird dieser
NULL
-Wert mit dem
Befehl
ISNULL
umgewandelt. Sie müssen dann nur noch angeben, in welchen Wert
NULL
umgewandelt werden soll.
ISNULL
(Ergebnis,
0)
wandelt das Ergebnis in die Zifer „0“ um, wenn das Ergebnis
NULL
ist.
ISNULL
(sum(Spaltenname),
0)
wandelt die Summe in die Zifer „0“ um, wenn die
Summe
NULL
ist.
Hinter dem Komma steckt also die Angabe, in welchen Wert
NULL
umgewandelt werden soll.
In unserem Select benötigen wir die Umwandlung von
NULL
in die Zifer „0“ bei der Berech-
nung der Retourenkosten
ISNULL((sum (b.Retouren)*5.8),0)Retourkosten
und bei der Errechnung des Nettoertrags.
sum (a.Nettosumme)- ISNULL(sum (b.Ret_Nettowert),0)- (sum (a.Bestel-
lungen)*9.5)-
ISNULL((sum (b.Retouren)*5.8),0)Nettoertrag
Der vollständige Select lautet wie folgt:
Select a.riskID, count (distinct a.customerNo) Konten,
sum (a.Bestellungen)Bestellungen, sum (a.Artikel) Artikel,