un problema

20/05/2004 - 15:34 por Jorge Luis Medrano | Informe spam
Muy buenas a todos

Últimamente he estado con muchas consultas, y bueno... nuevamente vengo
con una un poco extraña para mí, la cual puede tener una solución fácil...
pero bueno... esta es mi consulta:

Estoy generando una balanza comercial, la cual tiene unos números de
cuentas en base a un select, el cual hace join con dos tablas: importación y
exportación, cree las dos tablas temporales sumarizadas por cuentas, y el
problema es que en exportacion me aparecen 1263 filas, y en importacion 1202
y cuando corro el query, me aparecen 1204, lo que por lógica no me toma las
que solo tienen importación, o solo exportación.

Hay alguna forma de que aparezcan esas cuentas???

el código es este:


select anyo,t_valor,capitulo, sum(valor) val
into #SumSacI
from importacion
group by anyo, t_valor, capitulo
order by anyo, t_valor, capitulo

select anyo,t_valor,capitulo, sum(valor) val
into #SumSacE
from exportacion
group by anyo, t_valor, capitulo
order by anyo, t_valor, capitulo

select i.anyo, i.t_valor, i.capitulo, e.val vale, i.val vali
from #SumSacI i right outer join #SumSacE e --, capitulos c
where (e.anyo = i.anyo) and (e.t_valor = i.t_valor) --and (c.capitulo e.capitulo) and (c.capitulo = i.capitulo)
order by e.anyo, e.t_valor, e.capitulo

drop table #SumSacI
drop table #SumSacE

go

Preguntas similare

Leer las respuestas

#1 poker
20/05/2004 - 16:10 | Informe spam
Prueba con "full join"
Esto te devolverá todas las filas de las dos tablas, existan o no en la otra
tabla.

"Jorge Luis Medrano" escribió en el mensaje
news:
Muy buenas a todos

Últimamente he estado con muchas consultas, y bueno... nuevamente


vengo
con una un poco extraña para mí, la cual puede tener una solución fácil...
pero bueno... esta es mi consulta:

Estoy generando una balanza comercial, la cual tiene unos números de
cuentas en base a un select, el cual hace join con dos tablas: importación


y
exportación, cree las dos tablas temporales sumarizadas por cuentas, y el
problema es que en exportacion me aparecen 1263 filas, y en importacion


1202
y cuando corro el query, me aparecen 1204, lo que por lógica no me toma


las
que solo tienen importación, o solo exportación.

Hay alguna forma de que aparezcan esas cuentas???

el código es este:


select anyo,t_valor,capitulo, sum(valor) val
into #SumSacI
from importacion
group by anyo, t_valor, capitulo
order by anyo, t_valor, capitulo

select anyo,t_valor,capitulo, sum(valor) val
into #SumSacE
from exportacion
group by anyo, t_valor, capitulo
order by anyo, t_valor, capitulo

select i.anyo, i.t_valor, i.capitulo, e.val vale, i.val vali
from #SumSacI i right outer join #SumSacE e --, capitulos c
where (e.anyo = i.anyo) and (e.t_valor = i.t_valor) --and (c.capitulo > e.capitulo) and (c.capitulo = i.capitulo)
order by e.anyo, e.t_valor, e.capitulo

drop table #SumSacI
drop table #SumSacE

go


Respuesta Responder a este mensaje
#2 Javier Loria
20/05/2004 - 17:43 | Informe spam
Hola:
Prueba con algo como:
=SELECT COALESCE(Imp.anyo, Exp.anyo)
, COALESCE(Imp.t_valor, Exp.t_valor)
, COALESCE(Imp.capitulo, Exp.capitulo)
, COALESCE(Exp.Val, 0)
, COALESCE(Imp.Val, 0)
FROM (SELECT anyo
, t_valor
, capitulo
, sum(valor) AS val
FROM importacion
GROUP BY anyo, t_valor, capitulo) AS Imp
FULL OUTER JOIN
(SELECT anyo
, t_valor
, capitulo
, sum(valor) AS val
FROM exportacion
GROUP BY anyo, t_valor, capitulo) AS Exp
ON Imp.anyo = Exp.anyo
AND Imp.t_valor = Exp.t_valor
AND Imp.capitulo= Exp.capitulo
= De paso quitas las tablas temporales. Esta sin probar por lo que puede
ser que tenga problemas de sintaxis.
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.


Jorge Luis Medrano escribio:
Muy buenas a todos

Últimamente he estado con muchas consultas, y bueno... nuevamente
vengo con una un poco extraña para mí, la cual puede tener una
solución fácil... pero bueno... esta es mi consulta:

Estoy generando una balanza comercial, la cual tiene unos números
de cuentas en base a un select, el cual hace join con dos tablas:
importación y exportación, cree las dos tablas temporales sumarizadas
por cuentas, y el problema es que en exportacion me aparecen 1263
filas, y en importacion 1202 y cuando corro el query, me aparecen
1204, lo que por lógica no me toma las que solo tienen importación, o
solo exportación.

Hay alguna forma de que aparezcan esas cuentas???

el código es este:


select anyo,t_valor,capitulo, sum(valor) val
into #SumSacI
from importacion
group by anyo, t_valor, capitulo
order by anyo, t_valor, capitulo

select anyo,t_valor,capitulo, sum(valor) val
into #SumSacE
from exportacion
group by anyo, t_valor, capitulo
order by anyo, t_valor, capitulo

select i.anyo, i.t_valor, i.capitulo, e.val vale, i.val vali
from #SumSacI i right outer join #SumSacE e --, capitulos c
where (e.anyo = i.anyo) and (e.t_valor = i.t_valor) --and (c.capitulo
= e.capitulo) and (c.capitulo = i.capitulo)
order by e.anyo, e.t_valor, e.capitulo

drop table #SumSacI
drop table #SumSacE

go
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida