Chcę zapytać o tabelę zamówień i pokazać identyfikator klienta oraz sumę wszystkich jego zamówień, jednak zamówienia mogą mieć dodatnie lub ujemne sumy.Zapytanie o agregację SQL dla SUM, ale zezwalaj tylko na sumy dodatnie (w przeciwnym razie 0)
select customer_id, SUM(order_total) from orders group by customer_id;
Teraz moje pytanie - w jaki sposób można osiągnąć następujące w jednej sql zapytanie:
Jeżeli suma jest dodatnia, chcę wyświetlić go jak jest; jeśli suma jest ujemna, chcę wyświetlić 0 zamiast faktycznej kwoty.
To, czego szukam, to funkcja, która może sobie z tym poradzić, podobna do funkcji IFNULL
(IFNULL(SUM(order_total),0)
), ale zamiast sprawdzania wartości NULL, powinna sprawdzić wynik ujemny.
Pseudo kod:
IFNEGATIVE(SUM(order_total),0)
Czy istnieje prosty sposób w standardzie SQL (lub specjalnie w MySQL 5.5, byłoby również ok).
Wielkie dzięki, nie użyłem przypadków w sql często, dobrze wiedzieć :) Myślę, że niektóre z innych udzielonych odpowiedzi (tj. JEDNA także praca), jednak niech akceptuję tutaj ten głos, awansuję także pozostałe. –