SQL - restar totales de un mismo campo

 
Vista:

restar totales de un mismo campo

Publicado por pablo (1 intervención) el 04/10/2006 06:59:02
Hola, tengo un problema, estoy haciendo consultas en visual fox, y me topé con el siguiente problema en donde trabajo:

Tengo una tabla donde tengo almacenados los datos de facturas. La tabla tiene los campos: producto, fecha, cantidad tipodoc. Necesito saber el total que se vendió de cierto producto durante todo el año. Por lo que utilizaba la siguiente consulta:

select sum(cantidad) from tabla where (fechac between ctod('01/01/2005') and ctod('31/12/2005')) and producto='P20101' AND tipodoc='F'

Luego me enteré que hay productos que fueron devueltos, por lo tanto al final ya no se vendieron, y fueron ingresados a la misma tabla. Para verlos uso la siguiente consulta:

select sum(cantidad) from tabla where (fecha between ctod('01/01/2005') and ctod('31/12/2005')) and producto='P20101' AND tipodoc='D'

Es decir, tengo el total facturado (tipodoc='F') en la primera consulta, tengo tambien el total en devoluciones en la segunda consulta (tipodoc='D') y para saber realmente lo que se vendio es lo el total facturado-total devuelto. Es decir tendria que hacer una resta entre una fila y la otra. ¿Como puedo resolver esto?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:restar totales de un mismo campo

Publicado por Tom (4 intervenciones) el 05/10/2006 13:23:09
Algo así debería funcionar:

select sum(a.cantidad) - sum(b.cantidad) from tabla a, tabla b where a.fechac between ctod('01/01/2005') and ctod('31/12/2005')) and a.producto='P20101' AND a.tipodoc='F' and b.fecha between ctod('01/01/2005') and ctod('31/12/2005')) and b.producto='P20101' AND b.tipodoc='D'

pero mejor así:

select sum(cantidad) from tabla where fechac between ctod('01/01/2005') and ctod('31/12/2005')) and producto='P20101' AND tipodoc='F'
and not exists (
select sum(cantidad) from tabla where fecha between ctod('01/01/2005') and ctod('31/12/2005')) and producto='P20101' AND tipodoc='D'
)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:restar totales de un mismo campo

Publicado por El Teche (1 intervención) el 18/06/2007 18:46:54
Felices Pascuas y año nuevo, son los deseos de "El Teche" !!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar