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.052
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 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
  #5  
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.052
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
  #6  
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
  #7  
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
  #8  
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
Unhappy

¡Leches!.. .Ya me he equivocado con las etiquetas.

Mis disculpas
Responder Con Cita
  #9  
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
Tienes razon me falto decir que bases de datos, es FIREBIRD 2.1
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 18:36:46.


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