Ver Mensaje Individual
  #32 (permalink)  
Antiguo 27/01/2012, 14:16
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 2 meses
Puntos: 2658
Respuesta: Consulta MYSQL INNER JOIN

Exactamente así.
El campo fecha de la tabla madre tiene por objeto establecer el momento de inserción del movimiento de modo de poder lista los movimientos realizados sin tener que acudir a las otras.
Por una cuestión de trazabilidad de los procesos es muy habitual agregar a las tablas que se escriben, columnas que indiquen cuándo se hizo la operación que se registra allí.
Podría agregarsele un ID de una tabla que podamos llamar "MovimientosConcpetos", donde listar cuales son las tablas que contiene movimientos de Caja y de ese modo poder dinamicamente crear las consultas para acotar el tipo de movimiento que se busca.
Eso es extender el sistema, en todo caso quedaría para ti ver lo que conviene, pero con ese esquema tal y como lo empiezas a visualizar, la consulta que te propuse, funcionaría perfectamente, y te devolvería el listado esperado:


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
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)