Sumowanie wartości

M2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 11
0

Witam

mam taki fragment kodu:

Kopiuj
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"

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Wykorzystaj coalesce lub ifnull.

M2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 11
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ć ?

M2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 11
0

ok działa

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

Kopiuj
 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ź

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.