Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-01-2009
Jose Roman Jose Roman is offline
Miembro
 
Registrado: jul 2006
Ubicación: Colombia
Posts: 361
Poder: 18
Jose Roman Va por buen camino
Question Suma duplicada...

Hola a todos,
Resulta que estoy realizando una consulta y utilizo tres tablas:
- FACTURA
- PAGOS_DEL_MES
- PAGOS_DEL_DIA
Esto lo realizo con esta consulta:
Código SQL [-]
select sum(M.VR_RC), sum(D.VR_RC)
from FACTURA F
join PAGOS_DEL_DIA D on D.FACTURA = F.NUMERO_FACTURA
join PAGOS_DEL_MES M on M.FACTURA = F.NUMERO_FACTURA
where  F.NUMERO_FACTURA = 29680
En PAGOS_DEL_MES solo hay un registro con valor de $146.300 y en PAGOS_DEL DIA hay dos registros uno con valor de $62.700 y otro con valor de $3.800.Al realizar la consulta duplica el valor de PAGOS_DEL_MES y muestra $292.600 en cambio lo correspondiente a PAGOS_DEL_DIA da la suma.Que hago para que no duplique los registros, es decir que si hay dos o mas registros en una tabla y en la otra haya menos registros que la otra no se sumen en mas de una vez los registros de la tabla que contiene menos. Gracias.
Responder Con Cita
  #2  
Antiguo 29-01-2009
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Es normal que se duplique la suma porque has ¡cuadriplicado! el mensaje
Responder Con Cita
  #3  
Antiguo 29-01-2009
Jose Roman Jose Roman is offline
Miembro
 
Registrado: jul 2006
Ubicación: Colombia
Posts: 361
Poder: 18
Jose Roman Va por buen camino
Que pena con uds. lo que pasa es que tengo instalada en la oficina ese molesto programa IProtecYou, y me causa errores.
Responder Con Cita
  #4  
Antiguo 29-01-2009
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Seguramente, al tener 2 registros en una de las tablas te devuelve dos registros también, por eso te suma 2 veces el que tiene un registro, prueba a hacer 2 selects por separado.
Responder Con Cita
  #5  
Antiguo 29-01-2009
Jose Roman Jose Roman is offline
Miembro
 
Registrado: jul 2006
Ubicación: Colombia
Posts: 361
Poder: 18
Jose Roman Va por buen camino
Listo, realice las dos consultas por separado y utilice union, pero como estoy realizando un informe de SALDOS, como hago para que sume los dos registros de esta union?, o sera mejor realizar un procedimiento?
Responder Con Cita
  #6  
Antiguo 29-01-2009
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.235
Poder: 20
ElKurgan Va camino a la fama
¿Que base de datos estas utilizando? Lo digo porque en Oracle se puede hacer esto:

Código:
Select sum(Suma) from((select sum(M.VR_RC) Sumafrom FACTURA Fjoin PAGOS_DEL_MES M on M.FACTURA = F.NUMERO_FACTURAwhere  F.NUMERO_FACTURA = 29680)union(select sum(D.VR_RC) Sumafrom FACTURA Fjoin PAGOS_DEL_DIA D on D.FACTURA = F.NUMERO_FACTURAwhere  F.NUMERO_FACTURA = 29680))
Lo digo de memoria (no tengo a mano el Oracle para probarlo),
asi que no se si me he equivocado en algo

Un saludo
Responder Con Cita
  #7  
Antiguo 29-01-2009
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.735
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Creo que la solución será hacer dos select:
Código SQL [-]
select sum(M.VR_RC)
from FACTURA F
join PAGOS_DEL_MES M on M.FACTURA = F.NUMERO_FACTURA
where  F.NUMERO_FACTURA = 29680
y
select sum(D.VR_RC)
from FACTURA F
join PAGOS_DEL_DIA D on D.FACTURA = F.NUMERO_FACTURA
where  F.NUMERO_FACTURA = 29680

De todos modos, no se si tiene sentido, pues parece que la suma que hay en PAGOS_DEL_DIA es igual a PAGOS_DEL_MES.
Responder Con Cita
Respuesta



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
Key Violation no esta duplicada chinosoft C++ Builder 7 25-03-2008 20:29:48
Eliminar info duplicada/tripicada en algunos campos marceloalegre SQL 5 18-07-2006 16:22:48


La franja horaria es GMT +2. Ahora son las 00:21:44.


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