realizar una suma en Mysql

realizar una suma en Mysql

Postby Adolfredo Martinez » Mon Sep 14, 2020 2:48 pm

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
Adolfredo Martinez
 
Posts: 116
Joined: Fri Feb 15, 2019 1:37 pm
Location: Aracataca-Colombia

Re: realizar una suma en Mysql

Postby xmanuel » Mon Sep 14, 2020 4:07 pm

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

Re: realizar una suma en Mysql solucionado

Postby Adolfredo Martinez » Mon Sep 14, 2020 5:58 pm

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
Adolfredo Martinez
 
Posts: 116
Joined: Fri Feb 15, 2019 1:37 pm
Location: Aracataca-Colombia

Re: realizar una suma en Mysql

Postby Adolfo » Tue Sep 15, 2020 1:27 pm

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
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650
User avatar
Adolfo
 
Posts: 860
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile

Re: realizar una suma en Mysql

Postby nageswaragunupudi » Wed Sep 16, 2020 5:11 am

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
User avatar
nageswaragunupudi
 
Posts: 10662
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: realizar una suma en Mysql

Postby Adolfredo Martinez » Wed Sep 16, 2020 7:20 pm

Mr Rao y Adolfo


Gracias por esa aclaración.
Adolfredo Martinez
 
Posts: 116
Joined: Fri Feb 15, 2019 1:37 pm
Location: Aracataca-Colombia


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 56 guests