FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour realizar una suma en Mysql
Posts: 141
Joined: Fri Feb 15, 2019 01:37 PM
realizar una suma en Mysql
Posted: Mon Sep 14, 2020 02: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

Posts: 817
Joined: Sun Jun 15, 2008 07:47 PM
Re: realizar una suma en Mysql
Posted: Mon Sep 14, 2020 04: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
Posts: 141
Joined: Fri Feb 15, 2019 01:37 PM
Re: realizar una suma en Mysql solucionado
Posted: Mon Sep 14, 2020 05: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

Posts: 883
Joined: Tue Oct 11, 2005 11:57 AM
Re: realizar una suma en Mysql
Posted: Tue Sep 15, 2020 01: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
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: realizar una suma en Mysql
Posted: Wed Sep 16, 2020 05: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
Posts: 141
Joined: Fri Feb 15, 2019 01:37 PM
Re: realizar una suma en Mysql
Posted: Wed Sep 16, 2020 07:20 PM

Mr Rao y Adolfo

Gracias por esa aclaración.

Continue the discussion