Ver Mensaje Individual
  #10 (permalink)  
Antiguo 20/08/2009, 16:25
hugopinaemiliano
 
Fecha de Ingreso: agosto-2009
Mensajes: 2
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: SUM() a diferentes tablas ! ! !

Cita:
Iniciado por huesos52 Ver Mensaje
Las subconsultas, siempre tendrán problemas de procesamiento. En algunas ocasiones son lentas, teniendo en cuenta que la consulta derivada, puede conllevar muchos registros de salida y si a eso le sumas la operación que realizas por fuera de ella, podría ser otro tiempo considerable.

Su uso es muy cómodo, pero debes tener en cuenta no el tamaño de la consulta en lineas, sino de que procesos realiza en cada etapa. Si los procesos son muy grandes, sería cuestión de buscar otra técnica o bien, realizar las consultas por separado.

Un saludo
Hola Huesos, tengo un problema al restar 2 valores, creo que es algo mas facil que la situación descrita anteriormente, a ver si me doy a explicar:

Tengo 2 tablas donde quiero obtener la resta de un la suma de un "pagoTotal" y la suma de "pagos (abonados)" y una tercera que tiene que ver con ambas (facturacion) en el campo "folio":

1.- cuentas: almacena los abonos "pagos" realizados a la factura
2.- pedidos: en esta tabla tengo el "importe" "iva" y "total"
3.- facturacion: el estatus de la factura

En los totales es decir sum(importe), sum(iva), sum(total), sum(pagos) no tengo ningun problema el problema es restar sum(total) - sum(pagos), te muestro la consulta que intento hacer para obtener esta resta:

SELECT
sum(CU.pago)
,round(sum(P.total) - sum(CU.pago))

FROM pedidos P INNER JOIN clientes C ON P.idCliente=C.idCliente
LEFT JOIN usuarios U ON U.usu_id=P.responsable
LEFT JOIN facturacion F ON P.folio=F.folio
LEFT JOIN cuentas CU on CU.folio=F.folio

WHERE P.fechaAlta > '$fechaI'
AND P.fechaAlta < '$fechaF'
AND F.estatus='I'
AND F.estatusCuentas <> 1
AND F.cancel <> 1

El problema que tengo es que en sum(P.total) me suma el monto dependiendo de cuantos abonos haya hecho es decir se duplica triplica etc, estoy usando php mysql, intente con un GROUP BY pero no obtuve resultado, espero me haya dado entender. Gracias.