Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/12/2009, 02:30
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Ayuda con consulta JOIN

Código MySQL:
Ver original
  1. Select sum(pg.valor_guia)
  2. from pie_guia_servicio pg
  3. where pg.id_contrato_cliente=cf.id_contrato_cliente
  4. and month(pg.fecha)=month(ef.fecha_factura)

si lo juntamos

Código MySQL:
Ver original
  1.     ef.numero_factura,
  2.     ef.fecha_factura,
  3.     CONCAT(c.rut_cliente,"-",c.dv_cliente),
  4.     c.giro_cliente,
  5.     c.direccion_cliente,
  6.     co.descripcion_comuna,
  7.     ci.descripcion_ciudad,
  8.     cf.linea_factura,
  9.     cf.id_contrato_cliente,
  10.     cf.cantidad,
  11.    (Select sum(pg.valor_guia)
  12.             from pie_guia_servicio pg
  13.             where pg.id_contrato_cliente=cf.id_contrato_cliente
  14.             and month(pg.fecha)=month(ef.fecha_factura)) as precio_unitario,
  15.     cc.resumen_contrato_cliente,
  16.     pf.valor_neto,
  17.     pf.valor_iva,
  18.     pf.valor_bruto,
  19.     pf.total_descuento
  20. FROM encabezado_factura ef
  21.           INNER JOIN cuerpo_factura cf USING (numero_factura)
  22.           INNER JOIN pie_factura pf USING (numero_factura)
  23.           INNER JOIN cliente c USING (rut_cliente)
  24.           LEFT JOIN contrato_cliente cc
  25.                    ON cc.id_contrato_cliente = cf.id_contrato_cliente
  26.           LEFT JOIN comuna co ON co.id_comuna = c.id_comuna
  27.           LEFT JOIN ciudad ci ON ci.id_ciudad = c.id_ciudad

Si la factura tiene fecha del mes siguiente deberas restar uno (cuidado con el mes de enero). He supuesto que pie_guia_servicio tiene una fecha... si no tendras que ver de donde la sacas....

No he repasado tu codigo solo he intentado interpretar lo que necessitabas....


Si funciona y quieres tendràs que transformar esta query (SELECT) a una query (UPDATE) que guarde la suma en la tabla....

Quim