Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/04/2007, 16:16
edgarrik
 
Fecha de Ingreso: marzo-2007
Mensajes: 80
Antigüedad: 17 años, 2 meses
Puntos: 1
Combinacion de Celdas--Campos

La estructura es la siguiente:
id_importacion_exportacion ----> int, llave principal, correlativo
id_pais ----> int, llave foranea relacionada con la tabla pais (id_pais, nombre)
id_pais_origen ----> int, igual que el anterior
id_pais_destino ----> int, igual que el anterior
volumen ----> float
id_tipo_volumen ----> int, llave foranea relacionada con la tabla tipo_volumen (id_tipo_volumen, volumen)
valor ----> float
id_tipo_valor ----> int igual que el tipo_volumen, pero a la tabla valor
fecha ----> varchar(14), estandar de la empresa donde trabajo
id_tipo_actividad ----> int, llave foranea relacionada con la tabla tipo_actividad (id_tipo_actividad_actividad ----> 1 Importación, 2 Exportación)
id_arancel ----> llave foranea relacionada con la tabla arancel (id_arancel, arancel)
Aunque el arancel aqui no importa mucho, no se usa para el SQL que necesito.....

Yo he escrito esto: pero los años tiene que ir formado columnas, debajo de la columna Importacion, Exportacion o Saldo segun sea el caso....

a la izquierda de todo hay una columna que dice pais Origen/Destino, que representa el pais de donde se importo o hacia cual se exporto....
CUALQUIER AYUDA, SERA BIENVENIDA, Y DE ANTEMANO, MUCHAS GRACIAS...

select *, tabla.valor - tabla.valore as SaldoVol, tabla.volumen - tabla.volumenE as SaldoVal
from
(
select a.pais_origen, a.anio, a.volumen, a.valor,
/*----------------------*/
Isnull((select d.volumen
from
(select c.nombre as pais_destino, substring(b.fecha,1,4) as anio, sum(b.volumen) as volumen, sum(b.valor) as valor
from importacion_exportacion b, pais c
where b.id_pais_destino=c.id_pais
and b.id_pais_origen=3 /*PAIS REPORTANTE*/
and b.id_tipo_actividad=2
group by c.nombre, substring(b.fecha,1,4)
) as d
where d.anio = a.anio
and a.pais_origen = d.pais_destino
),0) as volumenE
,
/*----------------------*/
isnull((select f.valor
from
(select c.nombre as pais_destino, substring(b.fecha,1,4) as anio, sum(b.volumen) as volumen, sum(b.valor) as valor
from importacion_exportacion b, pais c
where b.id_pais_destino=c.id_pais
and b.id_pais_origen=3 /*PAIS REPORTANTE*/
and b.id_tipo_actividad=2
group by c.nombre, substring(b.fecha,1,4)
) as f
where f.anio = a.anio
and a.pais_origen = f.pais_destino
),0) as valorE
from
(select c.nombre as pais_origen, substring(b.fecha,1,4) as anio, sum(b.volumen) as volumen, sum(b.valor) as valor
from importacion_exportacion b, pais c
where b.id_pais_origen=c.id_pais
and b.id_pais_destino=3 /*PAIS REPORTANTE*/
and b.id_tipo_actividad=1
group by c.nombre, substring(b.fecha,1,4)
) as a
) as tabla