Ver Mensaje Individual
  #1  
Antiguo 05-08-2014
arkam20 arkam20 is offline
Registrado
NULL
 
Registrado: ago 2014
Posts: 2
Reputación: 0
arkam20 Va por buen camino
SQL con sumas de campos

Saludos a todos este es mi primer post.

Hace unas semanas comence a retomar, delphi y Mysql.

Hice una consulta y me funciona pero tengo mis dudas si sea lo correcto.

Tengo 2 tablas principales

OBRAS
id_obra
nombre_obra


BENEFICIARIOS
id_beneficiario
id_obra
nom_beneficiario

PAGOS
id_pago
id_beneficiario
importe_pago

DESCUENTOS
id_descuento
id_beneficiario
importe_desc



Por ejemplo tenemos 1 obra, con varios beneficiarios o clientes, los cuales realizan los pagos y reciben descuentos.
Lo que hice primero es hacer consulta de esa obra y mostrar los beneficiarios contenidos en una obra con toda la suma de sus pagos y descuentos.

Código SQL [-]
SELECT  bf.nom_beneficiario,
            
            (SELECT SUM(pg.importe_pago)
             FROM    pagos AS pg
             WHERE bf.id_beneficiario= pg.id_beneficiario) AS total_pagos,
            
             (SELECT SUM(dc.importe_desc)
             FROM    descuentos AS dc
             WHERE bf.id_beneficiario= dc.id_beneficiario) AS total_descuentos
   
  
FROM    beneficiario AS bf,
            obra         AS cob

WHERE   bf.id_obra= cob.id_obra
            cob.id_obra= :id_obra

La consulta funciona y realiza su cometido, pero no se si este correcto hacerlo de esta manera.

esta consulta se lleva menos del segundo en realizarse.

Hice una consulta parecida pero con mas campos y un poco mas complicada y consumio 4.5 segundos (se me hizo lenta)
la tabla de obras tiene 576 registros y beneficiarios 7000 aproximadamente.


Agradeceria sus consejos. Gracias

Última edición por Neftali [Germán.Estévez] fecha: 05-08-2014 a las 13:08:20.
Responder Con Cita