Query

14/11/2003 - 19:55 por Erica Diaz Bodart | Informe spam
Tengo el siguiente problema:

select isnull(Tabla1.Departamento,Tabla2.Departamento) as
Departamento,
isnull(Tabla1.Marca,Tabla2.Marca) as Marca,
sum(isnull(Tabla1.cantidad,0)) as Cantidad1,
sum(isnull(Tabla2.cantidad,0)) as Cantidad2 from tabla1
full outer join tabla2 on
tabla1.departamento = tabla2.departamento and
tabla1.marca = tabla2.marca
group by tabla1.departamento, Tabla2.Departamento,
tabla1.Marca, Tabla2.Marca

Tengo dos tablas involucradas Tabla 1 y Tabla 2 donde:
Necesito mostrar las cantidad de ambas tablas esten o no
en ambas o en la parte izquierda o en la derecha o en las
dos. pero resulta que cuando estan en ambas tablas me
duplica las cantidades. cuando esta en la parte derecha o
izquierda solamente me muestra correctamente los datos.
alguno de ustedes me podria dar una solucion o de que
forma podria yo sacar estos datos correctamente...

a continuacion les muestro lo que tiene cada tabla y su
resultado actual:
Tabla1.
Depart Marca Cantidad
1 1 12
1 1 10
1 3 1
2 2 5

Tabla 2.
Departa Marca Cantidad
1 1 10
1 1 10
3 2 15


y el resultado que muestra es el siguiente
Depart Marca Cantidad1 Cantidad2
3 2 .0000 15.0000
1 3 1.0000 .0000
1 1 44.0000 40.0000
2 2 5.0000 .0000


Todo el resultado es corecto excepto la linea 3 que
pertenece al departamento y marca uno

Pleasseeeeeeeeeee me urge... gracias por el tiempo
prestado a la lectura de mi duda..

;) :Þ

bye
 

Leer las respuestas

#1 Javier Loria
14/11/2003 - 21:43 | Informe spam
Hola Erica:
En este momento no tengo un servidor de SQL, para probar tu sentencia,
pero se me ocurre que podrias cambiarla por:
/* Codigo SIN PROBAR */
SELECT Departamento,
Marca,
SUM(Cantidad1) AS Cantidad1,
SUM(Cantidad2) AS Cantidad2
FROM ( SELECT Departamento,
Marca,
Cantidad AS Cantidad1,
0.00
FROM Tabla1
UNION ALL
SELECT Departamento,
Marca,
0.00
Cantidad AS Cantidad2
FROM Tabla2) AS T
GROUP BY Departament, Marca
/* Fin de Codigo */
Si te funciona, propongo nombrar esta semana oficialmente la semana del
UNION ALL.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Erica Diaz Bodart escribio:
Tengo el siguiente problema:

select isnull(Tabla1.Departamento,Tabla2.Departamento) as
Departamento,
isnull(Tabla1.Marca,Tabla2.Marca) as Marca,
sum(isnull(Tabla1.cantidad,0)) as Cantidad1,
sum(isnull(Tabla2.cantidad,0)) as Cantidad2 from tabla1
full outer join tabla2 on
tabla1.departamento = tabla2.departamento and
tabla1.marca = tabla2.marca
group by tabla1.departamento, Tabla2.Departamento,
tabla1.Marca, Tabla2.Marca

Tengo dos tablas involucradas Tabla 1 y Tabla 2 donde:
Necesito mostrar las cantidad de ambas tablas esten o no
en ambas o en la parte izquierda o en la derecha o en las
dos. pero resulta que cuando estan en ambas tablas me
duplica las cantidades. cuando esta en la parte derecha o
izquierda solamente me muestra correctamente los datos.
alguno de ustedes me podria dar una solucion o de que
forma podria yo sacar estos datos correctamente...

a continuacion les muestro lo que tiene cada tabla y su
resultado actual:
Tabla1.
Depart Marca Cantidad
1 1 12
1 1 10
1 3 1
2 2 5

Tabla 2.
Departa Marca Cantidad
1 1 10
1 1 10
3 2 15


y el resultado que muestra es el siguiente
Depart Marca Cantidad1 Cantidad2
3 2 .0000 15.0000
1 3 1.0000 .0000
1 1 44.0000 40.0000
2 2 5.0000 .0000


Todo el resultado es corecto excepto la linea 3 que
pertenece al departamento y marca uno

Pleasseeeeeeeeeee me urge... gracias por el tiempo
prestado a la lectura de mi duda..

;) :Þ

bye

Preguntas similares