Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-08-2014
arkam20 arkam20 is offline
Registrado
NULL
 
Registrado: ago 2014
Posts: 2
Poder: 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 14:08:20.
Responder Con Cita
  #2  
Antiguo 05-08-2014
aposi aposi is offline
Miembro
 
Registrado: dic 2006
Posts: 146
Poder: 18
aposi Va por buen camino
mira si este SQL va mejor

Código SQL [-]
SELECT cob.id_obra,cob.nombre_obra, bf.nom_beneficiario,SUM(pg.importe_pago) AS total_pagos,SUM(dc.importe_desc) AS total_descuentos
FROM obra AS cob
left join  beneficiario AS bf on  cob.id_obra = bf.id_obra
left join  pagos AS pg on bf.id_beneficiario= pg.id_beneficiario
left join  descuentos AS dc on bf.id_beneficiario= dc.id_beneficiario
WHERE 
cob.id_obra= :id_obra
Responder Con Cita
  #3  
Antiguo 05-08-2014
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por arkam20 Ver Mensaje
Saludos a todos este es mi primer post.
Hola y bienvenido al club.

Por favor revisa la guía de estilo y usa TAG's cuando escribas código.
Mejora mucho la lectura de este.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Sumas sucesivas sisne Conexión con bases de datos 3 09-04-2010 11:58:44
Sumas y Asignaciones de campos MaMu MySQL 2 11-02-2009 22:52:59
Consulta de sumas jplj SQL 2 30-09-2008 08:19:25
Sumas de campos en SQL noe SQL 2 03-02-2005 20:43:23
Sumas por pagiginas en QReport raugadel Impresión 2 23-04-2004 10:50:20


La franja horaria es GMT +2. Ahora son las 09:46:15.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi