Norbert M.

Norbert M. Nobody's perfect.
Call me Nobody ;)

Temat: Null do zera

Mam pytanko czy w SQL 2000 można następujące zapytanie zastąpić czymś prostszym?


CASE WHEN SUM(Splata.stKwota) IS NULL THEN 0 ELSE SUM(Splata.stKwota) END

Chodzi o to by, możliwie najefektywniej zamienić wartość null na 0, tak by nie trzeba było wykonywać sumowania dwa razy.Norbert Maziarz edytował(a) ten post dnia 06.03.09 o godzinie 09:49

Temat: Null do zera

Spróbuj przypisać może sumę do zmiennej w osobnym selekcie?

DECLARE @suma decimal(5,0)

SET @suma = (select sum(...) ....)

a potem ją wykorzystać w kodzie.

select isnull(@suma, 0) .....

albo case-when.

Spróbuj także:

SELECT isnull(T.MojaSuma, 0)
FROM
(SELECT sum(.....) AS MojaSuma
FROM...
WHERE...) T


Pamiętaj, aby nadać nazwę podzapytaniu (tutaj: T)Adrian Olszewski edytował(a) ten post dnia 06.03.09 o godzinie 10:01

konto usunięte

Temat: Null do zera

Norbert Maziarz:
Mam pytanko czy w SQL 2000 można następujące zapytanie zastąpić czymś prostszym?


CASE WHEN SUM(Splata.stKwota) IS NULL THEN 0 ELSE SUM(Splata.stKwota) END

Chodzi o to by, możliwie najefektywniej zamienić wartość null na 0, tak by nie trzeba było wykonywać sumowania dwa razy.Norbert Maziarz edytował(a) ten post dnia 06.03.09 o godzinie 09:49

Zrob tablice posrednia z danymi przygotowanymi do wyliczen a tam przy przepisywaniu zastap NULL zerem (ew zastap w tablicy zrodlowej jezeli mozesz). Czasem warto rozwazyc przygotowanie danych w kilku krokach - wszystko zalezy ile danych, jak wazne sa "swieze" dane, itp...
Marcin Miga

Marcin Miga Programista. Po
prostu programista.

Temat: Null do zera

Coalesce(Sum(...), 0)
lub IsNull(Sum(...), 0)

mają trochę różne działanie, ale szczegółów nie pomnę...

pozdrawiaMM
Norbert M.

Norbert M. Nobody's perfect.
Call me Nobody ;)

Temat: Null do zera

Adrian Olszewski:
Spróbuj przypisać może sumę do zmiennej w osobnym selekcie?

DECLARE @suma decimal(5,0)

SET @suma = (select sum(...) ....)

a potem ją wykorzystać w kodzie.

select isnull(@suma, 0) .....

albo case-when.

Spróbuj także:

SELECT isnull(T.MojaSuma, 0)
FROM
(SELECT sum(.....) AS MojaSuma
FROM...
WHERE...) T


Pamiętaj, aby nadać nazwę podzapytaniu (tutaj: T)Adrian Olszewski edytował(a) ten post dnia 06.03.09 o godzinie 10:01

Sam isNull(,) zachował się bardzo dobrze. Dzięki Adrian.
PS. Rafał, dzięki co prawda w tym zapytaniu tablice pośrednie były by przerostem formy, ale to, co napisałeś podsunęło mi pomysł, co do zupełnie innego zapytania.
Tak czy inaczej dzięki Panowie.

Następna dyskusja:

Count zwracanie zera nie null




Wyślij zaproszenie do