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