Ver Mensaje Individual
  #6 (permalink)  
Antiguo 31/08/2012, 12:51
computer_si
 
Fecha de Ingreso: febrero-2011
Mensajes: 85
Antigüedad: 13 años, 2 meses
Puntos: 3
Respuesta: Union con sumas y restas

buenas tardes Leo

Ya quedo finalizada mi consulta y funcionando, tendre que leer bastante, ya que solo estoy familiarizado con consultas sencillas y no tan complejas como la que me ayudaste hacer, ampliando el panorama, en bd1 siempre va a existir solo una vez la referencia, pero en bd2 puede existir o no varias veces la referencia y de diferente naturaleza, cargo o abono, por consiguiente cree un campo llamado naturaleza con 1 o -1 dependiendo el tipo y al momento de hacer la suma, multiplico imp * naturaleza y en el SELECT principal lo sumo en vez de restarlo y asunto solucionado.

SELECT T1.nombre, T1.ref, T1.total + coalesce(T2.total,0) gran_total
FROM (SELECT bd3.nombre, ref, SUM(imp * naturaleza) total FROM bd1 INNER JOIN bd3 ON bd1.ref=bd3.ref GROUP BY bd3.nombre, ref) T1
LEFT JOIN
(SELECT ref, SUM(imp * naturaleza) total FROM bd2 INNER JOIN bd3 ON bd2.ref=bd3.ref GROUP BY ref) T2
ON T1.ref = T2.ref;

Solo me queda una duda referente al campo nombre, porque en los SELECT de las subconsultas tengo que hacer referencia a los campos que quiero que se muestren en el SELECT de la consulta principal asi como en el GROUP BY, porque si no los referencio no me salen en el SELECT principal. Esto es solo por saber tecnicamente como funciona esta consulta.

Saludos