Select

14/11/2003 - 20:01 por Juan Arballo | 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

Preguntas similare

Leer las respuestas

#1 Accotto Maximiliano D.
14/11/2003 - 20:44 | Informe spam
mira empeza haciendo esto (aca el problema me parece q esta en como estas
haciendo las uniones)

1) saca la funcion Sum (comentariala) y los group by, y fijate como arma los
registros (me explico)



Accotto Maximiliano Damian
Fundicion San Cayetano S.A
4002 - 4010
Gerente de Sistemas

"Juan Arballo" escribió en el mensaje
news:31d001c3aae1$b27c25f0$
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
Respuesta Responder a este mensaje
#2 dbuendiab
14/11/2003 - 23:54 | Informe spam
"Juan Arballo" <juan wrote in message news:<31d001c3aae1$b27c25f0$...
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




Select Depart, Marca, Sum(Cantidad) As Cantidad
From Tabla1
Group By Depart, Marca

Select Depart, Marca, Sum(Cantidad) As Cantidad
From Tabla2
Group By Depart, Marca

Si haces un Full Join de ambas, tendrás lo que buscas

Select
a.Depart, a.Marca, a.Cantidad,
b.Depart, b.Marca, b.Cantidad
From (
Select Depart, Marca, Sum(Cantidad) As Cantidad
From Tabla1
Group By Depart, Marca
) a
Full Join
(
Select Depart, Marca, Sum(Cantidad) As Cantidad
From Tabla2
Group By Depart, Marca
) b
On a.Depart = b.Depart And a.Marca = b.Marca

Sólo te queda por hacer reorganizar las columnas del Select con los
IsNull correspondientes:

Select
IsNull( a.Depart, b.Depart ) as Departamento,
IsNull( a.Marca, b.Marca ) as Marca,
IsNull( a.Cantidad, 0 ) as Cantidad1,
IsNull( b.Cantidad, 0 ) as Cantidad2
...

Observa que las cantidades no se Sum()arizan aquí sino antes de hacer
el Join.

Saludos,

Diego Buendia
Barcelona, Spain


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
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida