Quiero consultar una tabla de pedidos y mostrar el ID del cliente y el total de todos sus pedidos, sin embargo, los pedidos pueden tener totales positivos o negativos.Consulta de agregación SQL para SUM, pero solo permite sumas positivas (de lo contrario 0)
select customer_id, SUM(order_total) from orders group by customer_id;
Ahora mi pregunta - ¿cómo puedo lograr lo siguiente en una consulta SQL:
Si la suma total es positivo, quiero mostrarlo como es; si la suma total es negativa, solo quiero mostrar 0 en lugar de la cantidad real.
Lo que estoy buscando es una función que puede manejar esto, similar a la función IFNULL
(IFNULL(SUM(order_total),0)
), pero en lugar de la comprobación de nulo, se debe comprobar si hay un resultado negativo.
pseudo código:
IFNEGATIVE(SUM(order_total),0)
¿Hay una manera simple en SQL estándar (o específicamente en MySQL 5.5, también estaría bien).
Muchas gracias, no he usado casos en sql a menudo, es bueno saber :) Creo que algunas de las otras respuestas proporcionadas (es decir, SI también funcionan), sin embargo, deja Yo acepto esta votación aquí, también voté los otros. –