Page 1 of 1

realizar una suma en Mysql

Posted: Mon Sep 14, 2020 2:48 pm
by Adolfredo Martinez
Hola amigos del forum.

Estoy tratando de hacer una consulta donde sumo varias columnas, para obtener un resultado asi:

SUM(pagos.INDUSTRIA+pagos.AVISOS+pagos.BOMBERO+pagos.MORA+pagos.AUTORETEN) AS impuestos

Resulta en las columnas que no tengo valores no realiza las operacion, pero cuando todas las columnas tienen valores, si realiza la operacion.

Gracias por la atención prestada

Re: realizar una suma en Mysql

Posted: Mon Sep 14, 2020 4:07 pm
by xmanuel
Comprueba previamente que no sean null y si lo son asigna 0...
La funcion es if() y funciona exactamente como la de Harbour.
No lo voy a hacer todos pero mira...
SUM( if( pagos.INDUSTRIA is null, 0, pagos.INDUSTRIA ) +pagos.AVISOS+pagos.BOMBERO+pagos.MORA+pagos.AUTORETEN) AS impuestos

Re: realizar una suma en Mysql solucionado

Posted: Mon Sep 14, 2020 5:58 pm
by Adolfredo Martinez
Gracias por contestar rapido.

así fue la solución:

IFNULL(SUM(pagos.INDUSTRIA),0)+IFNULL(SUM(pagos.AVISOS),0)+ IFNULL(SUM(pagos.BOMBERO),0)+IFNULL(SUM(pagos.MORA),0)+ IFNULL(SUM(pagos.AUTORETEN),0) AS TOTALPAGADO


Gracias

Re: realizar una suma en Mysql

Posted: Tue Sep 15, 2020 1:27 pm
by Adolfo
Mas sencillo y directo usando funcion propia de MYSQL/MARIADB y mas rapida.

select sum(coalesce(pagos.INDUSTRIA,0))......

Re: realizar una suma en Mysql

Posted: Wed Sep 16, 2020 5:11 am
by nageswaragunupudi
Both MySQL and MariaDB support both IFNULL( e1, e2 ) and COALESCE( e1, e2, e3, ..., eN ).

COALESCE(...) is an ANSI SQL function and works the same way with many servers (with a few exceptions like MSAcess ).

IFNULL() supports only 2 arguments, whereas COALESCE() supports multiple arguments.

IFNULL() is limited to MySQl/MariaDB and not available with many other SQL servers. For this reason, many programmers who program for different SQL servers habitually use COALESCE(). Programmers who program for MySql/MariaDB only use IFNULL() mostly.

Re: realizar una suma en Mysql

Posted: Wed Sep 16, 2020 7:20 pm
by Adolfredo Martinez
Mr Rao y Adolfo


Gracias por esa aclaración.