Comunidad de diseño web y desarrollo en internet online

Suma de dos tablas con posible valor null

Citar            
MensajeEscrito el 16 Ene 2009 01:53 am
Resulta que tengo dos tablas:
"cargobonificacion"
+-------------+
| Field |
+-------------+
| id_cargo |
| id_venta |
| id_empleado |
| fecha |
| descripcion |
| monto |
| tipo |
+-------------+
"abono"
+--------------+
| Field |
+--------------+
| id_abono |
| id_venta |
| id_empleado |
| fecha_abono |
| monto_abono |
| estado_abono |
| id_almacen |
+--------------+

Las dos son movimientos que se le hacen a una cuenta(id_cuenta) pero no necesariamente debe haber registros con referencia a la cuenta en las dos tablas, osea que una cuenta puede tener puros movimientos en la tabla cargobonificacion y no tener en la tabla abono, o viceversa.

Lo que necesito es sacar la suma de los movimientos en las dos tablas de una sola cuenta, ¿Alguna sugerencia?

Estoy intenando asi, pero me sale cero:

Código :

SELECT (COALESCE(SUM(CB.monto),0)+COALESCE(SUM(A.monto_abono),0)) As Total FROM CargoBonificacion CB,Abono A WHERE CB.id_venta=3153 AND A.id_venta=3153;


Y en el caso de la cuenta 3153 tiene abonos pero no cargobonificacion.

Por Jorgelig

Claber

3035 de clabLevel

12 tutoriales

 

Monterrey, Nuevo Leon, MX

msie8
Citar            
MensajeEscrito el 16 Ene 2009 05:39 am
¿Te sirve así?

Código MySQL :

SELECT (COALESCE((SELECT monto_abono FROM abono WHERE id_venta = '3153'),0) + COALESCE((SELECT monto FROM cargobonificacion WHERE id_venta = '3153'),0)) AS suma

Por KB-27

Claber

301 de clabLevel



 

My very secret HQ

msie7
Citar            
MensajeEscrito el 16 Ene 2009 06:05 am

KB-27 escribió:

¿Te sirve así?

Código MySQL :

SELECT (COALESCE((SELECT monto_abono FROM abono WHERE id_venta = '3153'),0) + COALESCE((SELECT monto FROM cargobonificacion WHERE id_venta = '3153'),0)) AS suma
Muy buena gracias, solo que a como lo tienes se regresa mas de un resultado por campo, agregue el sum y wala:

Código MySQL :

SELECT (COALESCE((SELECT SUM(monto_abono) FROM abono WHERE id_venta = '3153'),0) + COALESCE((SELECT SUM(monto) FROM cargobonificacion WHERE id_venta = '3153'),0)) AS suma

Por Jorgelig

Claber

3035 de clabLevel

12 tutoriales

 

Monterrey, Nuevo Leon, MX

firefox
Citar            
MensajeEscrito el 16 Ene 2009 12:45 pm
Ah ok... Perfecto (y)

Por KB-27

Claber

301 de clabLevel



 

My very secret HQ

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.