Summe gibt null zurück, ich brauche aber 0

03/02/2010 - 09:52 von Tamara Mikes | Report spam
Salü alle zusammen

Ich habe ein SQL-Befehl der soll mir eine Summe in der Spalte EffSum bilden.
Das tut er auch. Aber er schreibt mir NULL in die Spalte EffSum, wenn es im
Select Sum(DatEffektivB) nichts zu summieren gibt. Wie kann ich mein SQL
umschreiben, damit ich in der Spalte EffSum immer 0 oder eine Zahl bekomme?

Das gleiche Problem habe ich dann in StichTagSum und in FCSum, dürfte ja
aber die identische Lösung sein.

Hintergrund: Ich muss spàter die Spalte EffSum weiter berechnen und da darf
ich kein NULL stehen haben.



UPDATE tblFinanzCache
set EffNeuberLast = getdate(),
EffNeuberNeed = 0,
KnotenTyp='kst',

EffSum (SELECT Sum(datEffektivB) AS Wert FROM vFinanzTotal --Summe ermitteln
WHERE tblFinanzCache.TreeBezeichnung =
vFinanzTotal.Kst --Summierungsbedingung
AND Datum >= CONVERT(DATETIME, @PerBeginn, 102)
AND Datum <= CONVERT(DATETIME, @StichTagEnde, 102)
),
StichTagSum (SELECT Sum(datEffektivB) AS Wert FROM vFinanzTotal --Summe ermitteln
WHERE tblFinanzCache.TreeBezeichnung =
vFinanzTotal.Kst --Summierungsbedingung
AND Datum >= CONVERT(DATETIME, @StichTagBeginn, 102)
AND Datum <= CONVERT(DATETIME, @StichTagEnde, 102)
),
FCSum (SELECT Sum(datForecastB) AS Wert FROM vFinanzTotal --Summe ermitteln
WHERE tblFinanzCache.TreeBezeichnung =
vFinanzTotal.Kst --Summierungsbedingung
AND Datum > CONVERT(DATETIME, @StichTagEnde, 102)
AND Datum <= CONVERT(DATETIME, @PerEnde, 102)
)
WHERE TreeBezeichnung IN (SELECT Kst FROM vFinanzTotal --Updatebedingung
WHERE Kst = tblFinanzCache.TreeBezeichnung) --Wenn es eine
Kostenstelle ist
AND DatumTyp = @DatumTyp --Nur die Daten in tblFinanzCache aktualisieren
welche zum Datum gehören



Vielen Dank für Hinweise welche mich vom NULL befreien und mich zu 0 führen.

Gruss Tamara
 

Lesen sie die antworten

#1 Uli Münch
03/02/2010 - 10:36 | Warnen spam
Hallo Tamara,

für Dein Problem gibt es die Funktion ISNULL()
Das müsste dann so aussehen

Select ISNULL(Sum(DatEffektivB),0)

mfG
Uli Münch

"Tamara Mikes" schrieb im Newsbeitrag
news:
Salü alle zusammen

Ich habe ein SQL-Befehl der soll mir eine Summe in der Spalte EffSum
bilden. Das tut er auch. Aber er schreibt mir NULL in die Spalte EffSum,
wenn es im Select Sum(DatEffektivB) nichts zu summieren gibt. Wie kann ich
mein SQL umschreiben, damit ich in der Spalte EffSum immer 0 oder eine
Zahl bekomme?

Das gleiche Problem habe ich dann in StichTagSum und in FCSum, dürfte ja
aber die identische Lösung sein.

Hintergrund: Ich muss spàter die Spalte EffSum weiter berechnen und da
darf ich kein NULL stehen haben.



UPDATE tblFinanzCache
set EffNeuberLast = getdate(),
EffNeuberNeed = 0,
KnotenTyp='kst',

EffSum > (SELECT Sum(datEffektivB) AS Wert FROM vFinanzTotal --Summe ermitteln
WHERE tblFinanzCache.TreeBezeichnung =
vFinanzTotal.Kst --Summierungsbedingung
AND Datum >= CONVERT(DATETIME, @PerBeginn, 102)
AND Datum <= CONVERT(DATETIME, @StichTagEnde, 102)
),
StichTagSum > (SELECT Sum(datEffektivB) AS Wert FROM vFinanzTotal --Summe ermitteln
WHERE tblFinanzCache.TreeBezeichnung =
vFinanzTotal.Kst --Summierungsbedingung
AND Datum >= CONVERT(DATETIME, @StichTagBeginn, 102)
AND Datum <= CONVERT(DATETIME, @StichTagEnde, 102)
),
FCSum > (SELECT Sum(datForecastB) AS Wert FROM vFinanzTotal --Summe ermitteln
WHERE tblFinanzCache.TreeBezeichnung =
vFinanzTotal.Kst --Summierungsbedingung
AND Datum > CONVERT(DATETIME, @StichTagEnde, 102)
AND Datum <= CONVERT(DATETIME, @PerEnde, 102)
)
WHERE TreeBezeichnung IN (SELECT Kst FROM vFinanzTotal --Updatebedingung
WHERE Kst = tblFinanzCache.TreeBezeichnung) --Wenn es eine
Kostenstelle ist
AND DatumTyp = @DatumTyp --Nur die Daten in tblFinanzCache aktualisieren
welche zum Datum gehören



Vielen Dank für Hinweise welche mich vom NULL befreien und mich zu 0
führen.

Gruss Tamara

Ähnliche fragen