Ver Mensaje Individual
  #29 (permalink)  
Antiguo 27/01/2012, 12:02
neocalichin
 
Fecha de Ingreso: enero-2012
Mensajes: 158
Antigüedad: 13 años
Puntos: 1
Mensaje Respuesta: Consulta MYSQL INNER JOIN

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Esencialmente estás intentando hacer un balance de caja...
El tema en ese caso pasa porque no existe en realidad una relación entre ambos porque se trata de operaciones completamente independientes. Son entidades diferentes.
Acá, para resolverlo deberías crear en lugar de esa entidad "Mes" una entidad que llames, por ejemplo, "MovimientoCaja", y relaciones Cheque ("Caja_Cheque") y Abono ("Caja_Egreso") con ella, de modo que hereden la clave (relación 1:N en una jerarquia).
De ese modo tendrías todos los movimientos de caja registrados en una tabla, y los tipos de movimiento en cada una de las otras (a la que se pueden ir agregando otras según el tipo de entrada o egreso que se trate).
En ese contexto, si quieres el listado completo sería:
Código MySQL:
Ver original
  1.     MC.movimiento_id,
  2.     MC.fecha,
  3.     IFNULL(CE.importe, 0.0) Egreso,
  4.     IFNULL(CC.importe, 0.0) Ingreso
  5.     movimiento_caja MC
  6.     LEFT JOIN CajaEgreso CE ON MC.movimiento_id = CE.movimiento_id
  7.     LEFT JOIN CajaCheque CC ON MC.movimiento_id = CC.movimiento_id
  8.     MC.movimiento_id

Si quieres además una sumatoria con subtotales:
Código MySQL:
Ver original
  1.     MC.movimiento_id,
  2.     MC.fecha,
  3.     IFNULL(CE.importe, 0.0) Egreso,
  4.     IFNULL(CC.importe, 0.0) Ingreso,
  5.     SUM(CE.importe) TotalEgreso,
  6.     SUM(CC.importe) TotalIngreso
  7.     movimiento_caja MC
  8.     LEFT JOIN CajaEgreso CE ON MC.movimiento_id = CE.movimiento_id
  9.     LEFT JOIN CajaCheque CC ON MC.movimiento_id = CC.movimiento_id
  10.     MC.movimiento_id,
  11.     MC.fecha,
  12.     CE.importe Egreso,
  13.     CC.importe Ingreso  WITH ROLLUP;

No te olvides que para que este esquema funcione las tablas CajaCheque y CajaEgreso que te indico no deben tener clave propia, sino que heredan la clave de MovimientoCaja.
Si no entiendes bien esta idea te sugiero empezar leyendo algo de fundamentos del modelo Entidad - Relación y su aplicación a las bases de datos, cosa que puedes [URL="http://es.wikipedia.org/wiki/Bases_de_datos_relacionales"]encontrar en Wikipedia[/URL].
ESTUBE REVISANDO OTROS FOROS Y LO ENTENDI ASI
ESTA BIEN http://www.online-imagenes.com/show-image.php?id=f34648eb07bbc30d40d80905db933495


ASI SERIA LA DB PARA PODER PROSEGUIR O NO ? Y ESTA BIEN EL PRIMARY O UNA CLAVE FORANEA ?

SALUDOS