realizar una suma en Mysql

Post Reply
Adolfredo Martinez
Posts: 33
Joined: Fri Feb 15, 2019 1:37 pm
Location: Aracataca-Colombia

realizar una suma en Mysql

Post 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
xmanuel
Posts: 613
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla
Contact:

Re: realizar una suma en Mysql

Post 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
______________________________________________________________________________
Sevilla - Andalucía
Adolfredo Martinez
Posts: 33
Joined: Fri Feb 15, 2019 1:37 pm
Location: Aracataca-Colombia

Re: realizar una suma en Mysql solucionado

Post 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
User avatar
Adolfo
Posts: 815
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile
Contact:

Re: realizar una suma en Mysql

Post by Adolfo »

Mas sencillo y directo usando funcion propia de MYSQL/MARIADB y mas rapida.

select sum(coalesce(pagos.INDUSTRIA,0))......
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Lenovo Legion Y520, 16GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1050
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: realizar una suma en Mysql

Post 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.
Regards

G. N. Rao.
Hyderabad, India
Adolfredo Martinez
Posts: 33
Joined: Fri Feb 15, 2019 1:37 pm
Location: Aracataca-Colombia

Re: realizar una suma en Mysql

Post by Adolfredo Martinez »

Mr Rao y Adolfo


Gracias por esa aclaración.
Post Reply