anidar selects
Hola a todos!! quisiera hacerles una consulta. Quero realizar la suma de ingresos y egresos que están almacenados en dos tablas, la suma es por dÃa.... entonces mi idea era hacer algo asÃ:
para cada dia{
SELECT sum(monto) FROM ingresos WHERE fecha='dia';
}
Ya tengo el ciclo del dÃa, pero como tambien quiero los egresos, tendria que agregar otra consulta asÃ:
para cada dÃa{
SELECT sum(monto) FROM ingresos WHERE fecha='dia';
SELECT sum(monto) FROM egresos WHERE fecha='dia';
}
ahora, yo lo que no quiero es tener 2 consultas diferentes a la bd... me conviene más para lo que estoy haciendo que sea una sola... por lo que querÃa una sentencia que me quedara asÃ:
para cada dia{
SELECT sum(monto) AS ing FROM ingresos WHERE fecha='dia' ALGOQUEUNASELECTS SELECT sum(monto) AS egr FROM egresos WHERE fecha='dia';
}
Es posible?? Ode que otra manera se pueden tener 2 columnas de dos tablas a la vez?
Porque lo primero que intenté fué:
para cada dia{
SELECT sum(ingresos.monto) AS ing,sum(egresos.monto) FROM ingresos,egresos WHERE fecha='dia';
}
Pero como ambas tablas tienen fecha, lo especifiqué asÃ:
para cada dia{
SELECT sum(ingresos.monto) AS ing,sum(egresos.monto) FROM ingresos,egresos WHERE ingresos.fecha='dia' OR egresos.fecha='dia';
}
Sin embargo, al hacer eso, si la fecha dada no existe para alguna de las 2 tablas (que puede darse el caso) entonces el valor que me arroja es completamente erroneo (ni idea de donde sale) Entonces, me gustarÃa saber si alguien me puede hachera una mano, se los agradecerÃa mucho.
para cada dia{
SELECT sum(monto) FROM ingresos WHERE fecha='dia';
}
Ya tengo el ciclo del dÃa, pero como tambien quiero los egresos, tendria que agregar otra consulta asÃ:
para cada dÃa{
SELECT sum(monto) FROM ingresos WHERE fecha='dia';
SELECT sum(monto) FROM egresos WHERE fecha='dia';
}
ahora, yo lo que no quiero es tener 2 consultas diferentes a la bd... me conviene más para lo que estoy haciendo que sea una sola... por lo que querÃa una sentencia que me quedara asÃ:
para cada dia{
SELECT sum(monto) AS ing FROM ingresos WHERE fecha='dia' ALGOQUEUNASELECTS SELECT sum(monto) AS egr FROM egresos WHERE fecha='dia';
}
Es posible?? Ode que otra manera se pueden tener 2 columnas de dos tablas a la vez?
Porque lo primero que intenté fué:
para cada dia{
SELECT sum(ingresos.monto) AS ing,sum(egresos.monto) FROM ingresos,egresos WHERE fecha='dia';
}
Pero como ambas tablas tienen fecha, lo especifiqué asÃ:
para cada dia{
SELECT sum(ingresos.monto) AS ing,sum(egresos.monto) FROM ingresos,egresos WHERE ingresos.fecha='dia' OR egresos.fecha='dia';
}
Sin embargo, al hacer eso, si la fecha dada no existe para alguna de las 2 tablas (que puede darse el caso) entonces el valor que me arroja es completamente erroneo (ni idea de donde sale) Entonces, me gustarÃa saber si alguien me puede hachera una mano, se los agradecerÃa mucho.
De nuevo: yo pregunto, yo respondo... jajajaja
Bueno, para los que se quedaran intrigados o aquellos en el mismo dilema que yo (que lo dudo) la respuesta es tan clara como el agua:
para cada dia{
SELECT sum(monto) AS ing,(SELECT sum(monto) FROM egresos WHERE fecha='dia') AS egr FROM ingresos WHERE fecha='dia';
}
Simple no?? Jejeje, quizas no sea la mejor forma, pero funciona y eso me basta, jejeje.
Bueno, para los que se quedaran intrigados o aquellos en el mismo dilema que yo (que lo dudo) la respuesta es tan clara como el agua:
para cada dia{
SELECT sum(monto) AS ing,(SELECT sum(monto) FROM egresos WHERE fecha='dia') AS egr FROM ingresos WHERE fecha='dia';
}
Simple no?? Jejeje, quizas no sea la mejor forma, pero funciona y eso me basta, jejeje.