Sumowanie wartości

0

Witam

mam taki fragment kodu:

max (case when dek_poj.pojemnosc in ('660') then dek_poj.pojemnosc end )* dek_poj.czestotliwosc + 
max (case when dek_poj.pojemnosc in ('1100') then dek_poj.pojemnosc end ) * dek_poj.czestotliwosc +
max (case when dek_poj.pojemnosc in ('7500') then dek_poj.pojemnosc end )* dek_poj.czestotliwosc as "POJEMNOSC", 

chciałbym to zsumować jak powyżej ale jeden ze składników sumy jest NULL w wyniku sumy otrzymuję NULL
Jak ma to zapisać aby w wyniku otrzymać liczbę wynikająca z sumy lub "0"

0

Wykorzystaj coalesce lub ifnull.

0

robiłem to w tej formie

max (case when coalesce(dek_poj.pojemnosc,'') in ('7500') then coalesce(dek_poj.pojemnosc,'') end )* coalesce(dek_poj.czestotliwosc,'') as "POJEMNOSC z ESOG",

ale otrzymuje monit

BŁĄD: nieprawidłowa składnia wejścia dla integer: ""
LINE 12: ...mnosc in ('7500') then coalesce(dek_poj.pojemnosc,'') end )*...

jak prawidłowo to zaimplementować ?

0

ok działa

prawidłowa implementacja wygląda tak jak poniżej

 coalesce(max (case when dek_poj.pojemnosc in ('660') then dek_poj.pojemnosc end ),0)* dek_poj.czestotliwosc + 
--max (case when dek_poj.pojemnosc in ('750') then dek_poj.pojemnosc end )* dek_poj.czestotliwosc + 
coalesce(max (case when dek_poj.pojemnosc in ('1100') then dek_poj.pojemnosc end ),0) * dek_poj.czestotliwosc +
coalesce(max (case when dek_poj.pojemnosc in ('7500') then dek_poj.pojemnosc end ),0)* coalesce(dek_poj.czestotliwosc,0) as "POJEMNOSC z ESOG",

dziękuje za podpowiedź

1 użytkowników online, w tym zalogowanych: 0, gości: 1