Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Sumar campos diferentes tablas

Estas en el tema de Sumar campos diferentes tablas en el foro de Oracle en Foros del Web. Hola Necesito sumar 2 campos de 3 tablas diferentes... esas 3 tablas se relacionan solo por 1 campo.... y no se trata de sumar todo ...
  #1 (permalink)  
Antiguo 19/12/2007, 15:24
 
Fecha de Ingreso: enero-2004
Mensajes: 52
Antigüedad: 20 años, 3 meses
Puntos: 0
Sumar campos diferentes tablas

Hola

Necesito sumar 2 campos de 3 tablas diferentes... esas 3 tablas se relacionan solo por 1 campo.... y no se trata de sumar todo el valor de esos 2 campos, sino que por cada uno de los id, sumar el valor total de las 3 tablas... he logrado a medias el asunto, ya que se me triplican los resultados...

es algo así como

select id, campo1, campo2, sumacampo3, sumacampo4 from tabla1 a, tabla2 b, tabla3 c where a.id = b.id and a.id = c.id


Dede ya, agradezco cualquier ayuda...
__________________
I can see the bodies on the wall... all the nightmare dreams i can't recall come...
  #2 (permalink)  
Antiguo 20/12/2007, 16:46
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Re: Sumar campos diferentes tablas

Hola,

Lei como 20 veces el post, parece el enunciado de un examen :)

Código:
SQL> select * from t1;

        ID CAMPO_A_SUMAR_1 CAMPO_A_SUMAR_2
---------- --------------- ---------------
         1              10              20
         2              15              30

SQL> select * from t2;

        ID CAMPO_A_SUMAR_1 CAMPO_A_SUMAR_2
---------- --------------- ---------------
         1              40              23
         2              45            2002
         1              40              20

SQL> select * from t3;

        ID CAMPO_A_SUMAR_1 CAMPO_A_SUMAR_2
---------- --------------- ---------------
         1              10              20
         1              40              20
         1              40              23
         2              15              30
         2              45            2002
Y esto es lo que entendi

Código:
SQL> select
  2  t1.id,
  3  sum(t1.campo_a_sumar_1 + t2.campo_a_sumar_1 + t3.campo_a_sumar_1) suma1,
  4  sum(t1.campo_a_sumar_2 + t2.campo_a_sumar_2 + t3.campo_a_sumar_1) suma2
  5  from
  6  t1, t2, t3
  7  where
  8  t1.id = t2.id and
  9  t2.id = t3.id
 10  group by t1.id
 11  /

        ID      SUMA1      SUMA2
---------- ---------- ----------
         1        480        429
         2        180       4124
Editado

Jajajaja cai tambien en la trampa de los duplicados....

Código:
SQL> select id, sum(campo_a_sumar_1), sum(campo_a_sumar_2)
  2  from
  3  (
  4  select id, campo_a_sumar_1, campo_a_sumar_2
  5  from t1
  6  union all
  7  select id, campo_a_sumar_1 , campo_a_sumar_2
  8  from t2
  9  union all
 10  select id, campo_a_sumar_1 ,campo_a_sumar_2
 11  from t3
 12  )
 13  group by id
 14  /

        ID SUM(CAMPO_A_SUMAR_1) SUM(CAMPO_A_SUMAR_2)
---------- -------------------- --------------------
         1                  180                  126
         2                  120                 4064
Saludos

Última edición por matanga; 21/12/2007 a las 02:52 Razón: quite las sumas parciales
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 17:42.