Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

SQL Query

Estas en el tema de SQL Query en el foro de Bases de Datos General en Foros del Web. Hola a todos ... Espero puedan ayudarme a resolver una consulta (Query). Se trata de lo siguiente. En un principio, mi consulta tenía que totalizar ...
  #1 (permalink)  
Antiguo 20/03/2006, 13:37
 
Fecha de Ingreso: febrero-2005
Ubicación: Buenos Aires (Argentina)
Mensajes: 36
Antigüedad: 19 años, 2 meses
Puntos: 0
SQL Query

Hola a todos ...

Espero puedan ayudarme a resolver una consulta (Query). Se trata de lo siguiente. En un principio, mi consulta tenía que totalizar un monto que se calcula como monto - montoDevoluciones, donde ambos atributos pertenecen a la tabla. También existe otro atributo "tipo_Movimiento" que indica el tipo de movimiento de la fila.
Pues bien, ahora la consuta debe tener en cuenta ese tipo para devolver la fila adecuada, es decir que el monto se calculará como
(Sumatoria Atributo Monto cuando tipo_Mov es "Abono", "Cheque" o "Traspaso") - (Sumatoria Atributo Monto cuando tipo_Mov es "Cargo") - montoDevoluciones.

Espero haber sido claro y que puedan ayudarme. Desde ya muy agradecido.
  #2 (permalink)  
Antiguo 20/03/2006, 13:59
 
Fecha de Ingreso: diciembre-2002
Ubicación: Roma
Mensajes: 60
Antigüedad: 21 años, 4 meses
Puntos: 0
Prueba con:

SELECT Attributo1, Attributo2, tipo_Mov, SUM(Monto) AS Monto
FROM tabla1, tabla2
GROUP BY Atrributo1, Attributo2, tipo_Mov,
HAVING tipo_Mov="Abono" OR tipo_Mov="Cheque" OR tipo_Mov="Traspaso";

Gara
  #3 (permalink)  
Antiguo 21/03/2006, 07:30
 
Fecha de Ingreso: noviembre-2005
Mensajes: 658
Antigüedad: 18 años, 5 meses
Puntos: 3
Prueba asi

select tipo_Movimiento,
CASE
WHEN tipo_Movimiento = "Abono" THEN sum(monto)
WHEN tipo_Movimiento = "Cheque" THEN sum(monto)
WHEN tipo_Movimiento = "Traspaso" THEN sum(monto)
WHEN tipo_Movimiento = "Cargo" THEN (sum(monto) - montoDevoluciones)
ELSE 0
END monto
from xxxxxx
group by tipo_Movimiento, monto
  #4 (permalink)  
Antiguo 21/03/2006, 08:00
 
Fecha de Ingreso: febrero-2005
Ubicación: Buenos Aires (Argentina)
Mensajes: 36
Antigüedad: 19 años, 2 meses
Puntos: 0
Gracias, en principio a ambas respuesta. Aunque me quedó una consulta muy compleja, logré mezclar ambas ideas y que devuelva el resultado esperado. Ahora, el trabajo que me queda es optimizar la consulta pero en principio sé que funciona.

Slds.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:01.