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

Suma de datos desde dos tablas

Estas en el tema de Suma de datos desde dos tablas en el foro de Bases de Datos General en Foros del Web. Hola a todos. Tengo dos tablas, iguales, de las que quiero hacer un select de ambas y sumar el resultado, ejemplo: Tabla1: --------------- id stock ...
  #1 (permalink)  
Antiguo 17/05/2005, 12:25
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 19 años, 7 meses
Puntos: 47
Suma de datos desde dos tablas

Hola a todos.

Tengo dos tablas, iguales, de las que quiero hacer un select de ambas y sumar el resultado, ejemplo:

Tabla1:
---------------
id stock
1 10
2 3
3 4
---------------

Tabla2:
---------------
id stock
1 1
3 6
4 3
---------------

El resultado deberia ser:

Resultado
---------------
id stock
1 11
2 3
3 10
4 3
---------------

Con:

SELECT sum(id), sum(stock) from tabla1 group by id union all SELECT sum(id), sum(stock) from tabla2 group by id

obtengo un registro por id por cada tabla, pero yo necesito un registro con la suma de las dos tablas.

PD: Uso MS SQL Server

Espero haber sido claro
Saludetes!!!!
  #2 (permalink)  
Antiguo 17/05/2005, 17:29
Avatar de sir_joshua  
Fecha de Ingreso: diciembre-2004
Mensajes: 411
Antigüedad: 19 años, 4 meses
Puntos: 0
No pues no se ... ahora si les fallo... lo unico que se ocurre es insertar los id faltantes en ambas tablas y en el campo stock poner 0, y asi ya podriamos igualarlos

select t1.id, t1.stock+t2.stock from t1, t2 where t1.id=t2.id;

espero te sirva .... salu2.
__________________
http://sir-joshua.hi5.com
Mex. Mex.
  #3 (permalink)  
Antiguo 17/05/2005, 18:37
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 1 mes
Puntos: 2
Hola!

Por partes..

1. Quieres actualizar una de las dos tablas con los totales?

2. Quieres crear una nueva tabla con los totales?

3. Quieres regresar la suma de ambas en una consulta?

Bueno, para la numero 3, seria algo asi..

select t1.id, (t1.campo1 + t2.campo1) 'Campo1Suma'
from tabla1 t1
left join tabla2 t2 on t1.id = t2.id

El join hace mas eficiente la consulta, tambien el left permite que si algun campo no existe en ambas tablas aun asi lo regresara con el valor de 1 solo.

Asi creo que debe funcionar perfecto... pruebalo, quizas necesita modificaciones según tu caso específico, pero es muy probable que sea lo que necesitas.

Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
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




La zona horaria es GMT -6. Ahora son las 23:06.