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
realizar una suma en Mysql
-
- Posts: 33
- Joined: Fri Feb 15, 2019 1:37 pm
- Location: Aracataca-Colombia
Re: realizar una suma en Mysql
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
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
Sevilla - Andalucía
-
- Posts: 33
- Joined: Fri Feb 15, 2019 1:37 pm
- Location: Aracataca-Colombia
Re: realizar una suma en Mysql solucionado
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
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
Mas sencillo y directo usando funcion propia de MYSQL/MARIADB y mas rapida.
select sum(coalesce(pagos.INDUSTRIA,0))......
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
http://www.xdata.cl - Desarrollo Inteligente
----------
Lenovo Legion Y520, 16GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1050
- nageswaragunupudi
- Posts: 8017
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: realizar una suma en Mysql
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.
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
G. N. Rao.
Hyderabad, India
-
- Posts: 33
- Joined: Fri Feb 15, 2019 1:37 pm
- Location: Aracataca-Colombia
Re: realizar una suma en Mysql
Mr Rao y Adolfo
Gracias por esa aclaración.
Gracias por esa aclaración.