Jump to content
x_soldier

ERRO: ORA-01036:Nome/Número de Variável Ilegal

Recommended Posts

x_soldier

Boas Pessoal,

Tenho a seguinte Query em SQL que me está a dar o seguinte erro: ORA-01036:Nome/Número de Variável Ilegal.

Já estive a verificar e alterar caracteres que poderiam estar a provocar o erro mas não consigo dar com a resolução.

Podem me ajudar, sff.

Desde já agradeço, Paulo Torres

SELECT 
"Entidad Declarante", 
"Periodo",
"Clase declaración",
"Clase instrumento",
"Código ISIN", 
"Epigrafe",
NVL("NIF Titular", '         ') NIF_Titular,
NVL("País de contrapartida",'  ') Pais_de_contrapartida, 
NVL("NIF emisor",'         ') NIF_emisor, 
"Signo saldo inicial valores",
TRIM(NVL(replace(to_char(SUM("Saldo inicial valores"),'0999999999999999.00'),'.',''),'000000000000000000')) Saldo_inicial_valores, 
"Signo saldo inicial importe", 
TRIM(NVL(replace(to_char(SUM("Saldo inicial importe"),'0999999999999999.00'),'.',''),'000000000000000000')) Saldo_inicial_importe, 
TRIM(NVL(replace(to_char(SUM("Oper sin precio entrada val"),'0999999999999999.00'),'.',''),'000000000000000000')) Oper_sin_precio_entrada_val,
TRIM(NVL(replace(to_char(SUM("Oper sin precio salida val"),'0999999999999999.00'),'.',''),'000000000000000000')) Oper_sin_precio_salida_val,
TRIM(NVL(replace(to_char(SUM("Operaciones entrada valores"),'0999999999999999.00'),'.',''),'000000000000000000')) Operaciones_entrada_valores, 
TRIM(NVL(replace(to_char(SUM("Operaciones entrada importe"),'0999999999999999.00'),'.',''),'000000000000000000')) Operaciones_entrada_importe,  
TRIM(NVL(replace(to_char(SUM("Operaciones salida valores"),'0999999999999999.00'),'.',''),'000000000000000000')) Operaciones_salida_valores, 
TRIM(NVL(replace(to_char(SUM("Operaciones salida importe"),'0999999999999999.00'),'.',''),'000000000000000000')) Operaciones_salida_importe, 
"Signo cupón valores",
TRIM(NVL(replace(to_char(SUM("Cupón valores"),'0999999999999999.00'),'.',''),'000000000000000000')) Cupon_valores,
"Signo cupón importe",
TRIM(NVL(replace(to_char(SUM("Cupón importe"),'0999999999999999.00'),'.',''),'000000000000000000')) Cupon_importe, 
"Signo Saldo final valores",
TRIM(NVL(replace(to_char(SUM("Saldo final valores"),'0999999999999999.00'),'.',''),'000000000000000000')) Saldo_final_valores,
"Signo saldo final importe",
TRIM(NVL(replace(to_char(SUM("Saldo final importe"),'0999999999999999.00'),'.',''),'000000000000000000')) Saldo_final_importe,
"Nombre ISIN",
"Fecha del detalhe"

FROM
(

-- Reporte 1A : valores negociables emitidos por NÃO residentes.
-- Obrigações E MERCADO MONETÁRIO
SELECT 
'W0104784D' Entidad_Declarante, 
'201006' Periodo,
'1A' Clase_declaracion,
DECODE(tt.ttit_codigo,'A','01', -- Acções
                      'DS','01', --Direitos de Subscrição
                      'OD','03', -- Obrigações diversas
                      'OC','03', -- Obrigações de Caixa
                      'OSC','03', -- Obrigações s/cupão
                      'UP','02', --Unidades de PArticipação
                      'ETF','02', -- xchange traded Funds
                      'CD','04', -- Certificados de deposisto
                      'PC','04') -- Papel Comercial 
                      Clase_instrumento,
(select cod_titu_praca from {TITULO_PRACAS} tp where tp.tit_codigo=cm.tit_codigo and tp.pra_codigo ='ISI'
UNION 
SELECT alias from {TITULO_ALIAS} ta where ta.tit_codigo=cm.tit_codigo and ta.tpcodt_codigo='ISIN' ) Codigo_ISIN, --  Codigo ISIN do Instrumento
'2100' Epigrafe,
DECODE(cct.institucional,'S', NULL ,'N', 'Z99999999')  NIF_Titular, -- só é necessário para o reporte 1A
'  ' Pais_de_contrapartida, 
'         ' NIF_emisor, --Falta NIF Emissor
'P' Signo_saldo_inicial_valores,
0 Saldo_inicial_valores, 
'P' Signo_saldo_inicial_importe, 
0 Saldo_inicial_importe,
tm.tpmov_codigo, 

CASE  
    WHEN cm.preco<0.00000001 and (tm.Afecta_Saldo_Titulos='+' or tm.financeiro='N' )  THEN DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade) 
    ELSE 0 
END AS Oper_sin_precio_entrada_val,

CASE  
    WHEN cm.preco<0.0000001 and  (tm.Afecta_Saldo_Titulos='-' or tm.financeiro='N') THEN abs(DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade))  
    ELSE 0 
END AS  Oper_sin_precio_salida_val,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S') THEN DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade)   
    ELSE 0 
END AS  Operaciones_entrada_valores,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S') THEN arred_vl_monetario( importancia , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR')
    ELSE 0 
END AS Operaciones_entrada_importe,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S') THEN abs(DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade))  
    ELSE 0 
END AS Operaciones_salida_valores,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S') THEN arred_vl_monetario( abs(importancia) , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR')
    ELSE 0 
END AS Operaciones_salida_importe,


'P' Signo_cupon_valores,
0 Cupon_valores,
'P' Signo_cupon_importe,
0 Cupon_importe, 
'P' Signo_Saldo_final_valores,
0 Saldo_final_valores,
'P' Signo_saldo_final_importe,
0 Saldo_final_importe,
tt.descricao_resumida || rpad(' ', 50-Length(tt.descricao_resumida)) Nombre_ISIN,
to_char(dsess_data,'YYYYMMDD')  Fecha_del_detalhe
FROM {CONSERVADORIA_MOVIMENTOS} cm, {TITULOS} tt, {CLIENTES_CONTAS_TITULOS} cct,  {ENTIDADES_EMITENTES} EEMI, {PAISES} P, {TIPOS_MOVIMENTOS} tm
where 

cct.cli_codigo = cm.cli_codigo
and cct.cctit_codigo = cm.cctit_codigo
and cct.loj_codigo = 'MADRID'
and cm.tit_codigo= tt.tit_codigo 

and tt.eemi_codigo=eemi.eemi_codigo

and cct.pais_codigo=p.pais_codigo
and cm.tpmov_codigo=tm.tpmov_codigo
and dsess_data>= @StartDate and dsess_data<= @EndDate
and cct.pais_Codigo='ESP' and eemi.PAIS_CODIGO!='ESP' -- Epigrafe 2100 e Emissores não residentes
and tt.ttit_codigo  in('OD','OC','OSC','CD','PC') -- não entra divida pulica
and MONTHS_BETWEEN( tt.DT_ULTI_PAGAMENTO,tt.DT_1_CUPAO)>=12

UNION ALL

-- Reporte 1A : valores negociables emitidos por não  residentes.
-- Acções E FUNDOS
SELECT 
'W0104784D' Entidad_Declarante, 
'201006' Periodo,
'1A' Clase_de_claracion,
DECODE(tt.ttit_codigo,'A','01', -- Acções
                      'DS','01', --Direitos de Subscrição
                      'OD','03', -- Obrigações diversas
                      'OC','03', -- Obrigações de Caixa
                      'OSC','03', -- Obrigações s/cupão
                      'UP','02', --Unidades de PArticipação
                      'ETF','02', -- xchange traded Funds
                      'CD','04', -- Certificados de deposisto
                      'PC','04') -- Papel Comercial 
                      Clase_instrumento,
(select cod_titu_praca from {TITULO_PRACAS} tp where tp.tit_codigo=cm.tit_codigo and tp.pra_codigo ='ISI'
UNION 
SELECT alias from {TITULO_ALIAS} ta where ta.tit_codigo=cm.tit_codigo and ta.tpcodt_codigo='ISIN' ) Codigo_ISIN, --  Codigo ISIN do Instrumento
'2100' Epigrafe,
DECODE(cct.institucional,'S',NULL ,'N', 'Z99999999')  NIF_Titular, -- só é necessário para o reporte 1A
'  ' Pais_de_contrapartida, 
'         ' NIF_emisor, --Falta NIF Emissor
'P' Signo_saldo_inicial_valores,
0 Saldo_inicial_valores, 
'P' Signo_saldo_inicial_importe, 
0 Saldo_inicial_importe, 
tm.tpmov_codigo,
--CM.NUMERO,


CASE  
    WHEN cm.preco<0.00000001 and (tm.Afecta_Saldo_Titulos='+' or tm.financeiro='N')  THEN quantidade
    ELSE 0 
END AS Oper_sin_precio_entrada_val,

CASE  
    WHEN cm.preco<0.00000001 and (tm.Afecta_Saldo_Titulos='-' or tm.financeiro='N')  THEN abs(quantidade) 
    ELSE 0 
END AS  Oper_sin_precio_salida_val,

CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S')  THEN quantidade
    ELSE 0 
END AS Operaciones_entrada_valores,

CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S')  THEN arred_vl_monetario( importancia , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR') 
    ELSE 0 
END AS Operaciones_entrada_importe,
  
CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S')  THEN abs(quantidade)
    ELSE 0 
END AS Operaciones_salida_valores,

CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S')  THEN arred_vl_monetario( abs(importancia) , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR') 
    ELSE 0 
END AS Operaciones_salida_importe,


'P' Signo_cupon_valores,
0 Cupon_valores,
'P' Signo_cupon_importe,
0 Cupon_importe, 
'P' Signo_Saldo_final_valores,
0 Saldo_final_valores,
'P' Signo_saldo_final_importe,
0 Saldo_final_importe,
tt.descricao_resumida || rpad(' ', 50-Length(tt.descricao_resumida)) Nombre_ISIN,
to_char(dsess_data,'YYYYMMDD')  Fecha_del_detalhe

FROM {CONSERVADORIA_MOVIMENTOS} cm, {TITULOS} tt, {CLIENTES_CONTAS_TITULOS} cct,  {ENTIDADES_EMITENTES} EEMI, {PAISES} P, {TIPOS_MOVIMENTOS} tm

where 

cct.cli_codigo = cm.cli_codigo
and cct.cctit_codigo = cm.cctit_codigo
and cct.loj_codigo = 'MADRID'
and cm.tit_codigo= tt.tit_codigo 

and tt.eemi_codigo=eemi.eemi_codigo

and cct.pais_codigo=p.pais_codigo
and cm.tpmov_codigo=tm.tpmov_codigo
and dsess_data>= @StartDate and dsess_data<= @EndDate
and cct.pais_Codigo='ESP' and eemi.PAIS_CODIGO!='ESP' -- Epigrafe 2100 e Emissores não residentes
and tt.ttit_codigo  in('DS','A','UP','ETF') 



UNION ALL

-- Obrigações E MERCADO MONETÁRIO
SELECT 
'W0104784D' Entidad_Declarante, 
'201006' Periodo,
'1A' Clase_declaracion,
DECODE(tt.ttit_codigo,'A','01', -- Acções
                      'DS','01', --Direitos de Subscrição
                      'OD','03', -- Obrigações diversas
                      'OC','03', -- Obrigações de Caixa
                      'OSC','03', -- Obrigações s/cupão
                      'UP','02', --Unidades de PArticipação
                      'ETF','02', -- xchange traded Funds
                      'CD','04', -- Certificados de deposisto
                      'PC','04') -- Papel Comercial 
                      Clase_instrumento,
(select cod_titu_praca from {TITULO_PRACAS} tp where tp.tit_codigo=cm.tit_codigo and tp.pra_codigo ='ISI'
UNION 
SELECT alias from {TITULO_ALIAS} ta where ta.tit_codigo=cm.tit_codigo and ta.tpcodt_codigo='ISIN' ) Codigo_ISIN, --  Codigo ISIN do Instrumento
'4100' Epigrafe,
--DECODE(cct.institucional,'S',cctdoc.num_documento ,DECODE(cct.residente,'S','Z99999999','         '))  "NIF Titular",
'         '  NIF_Titular, -- só é necessário para o reporte 1A
--DECODE(cct.institucional,'N',DECODE(cct.residente,'N',cct.PAIS_CODIGO))  "País de contrapartida",
p.pais_codigo_3166A Pais_de_contrapartida, 
'         ' NIF_emisor, --Falta NIF Emissor

'P' Signo_saldo_inicial_valores,
0 Saldo_inicial_valores, 
'P' Signo_saldo_inicial_importe, 
0 Saldo_inicial_importe, 
tm.tpmov_codigo,



CASE  
    WHEN cm.preco<0.00000001 and (tm.Afecta_Saldo_Titulos='+' or tm.financeiro='N')  THEN DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade) 
    ELSE 0 
END AS Oper_sin_precio_entrada_val,

CASE  
    WHEN cm.preco<0.0000001 and  (tm.Afecta_Saldo_Titulos='-' or tm.financeiro='N') THEN abs(DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade))  
    ELSE 0 
END AS  Oper_sin_precio_salida_val,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S') THEN DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade)   
    ELSE 0 
END AS  Operaciones_entrada_valores,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S') THEN arred_vl_monetario( importancia , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR')  
    ELSE 0 
END AS Operaciones_entrada_importe,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S') THEN abs(DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade))  
    ELSE 0 
END AS Operaciones_salida_valores,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S') THEN arred_vl_monetario( abs(importancia) , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR')
    ELSE 0 
END AS Operaciones_salida_importe,



'P' Signo_cupon_valores,
0 Cupon_valores,
'P' Signo_cupon_importe,
0 Cupon_importe, 
'P' Signo_Saldo_final_valores,
0 Saldo_final_valores,
'P' Signo_saldo_final_importe,
0 Saldo_final_importe,
tt.descricao_resumida || rpad(' ', 50-Length(tt.descricao_resumida)) Nombre_ISIN,
to_char(dsess_data,'YYYYMMDD')  Fecha_del_detalhe

FROM {CONSERVADORIA_MOVIMENTOS} cm, {TITULOS} tt, {CLIENTES_CONTAS_TITULOS} cct,  {ENTIDADES_EMITENTES} EEMI, {PAISES} P, {TIPOS_MOVIMENTOS} tm

where 

cct.cli_codigo = cm.cli_codigo
and cct.cctit_codigo = cm.cctit_codigo
and cct.loj_codigo = 'MADRID'
and cm.tit_codigo= tt.tit_codigo 

and tt.eemi_codigo=eemi.eemi_codigo

and cct.pais_codigo=p.pais_codigo
and cm.tpmov_codigo=tm.tpmov_codigo
and dsess_data>= @StartDate and dsess_data<= @EndDate
and cct.pais_Codigo!='ESP' and eemi.PAIS_CODIGO!='ESP' -- Epigrafe 4100 e Emissores não residentes
and tt.ttit_codigo  in('OD','OC','OSC','CD','PC') -- não entra divida pulica
and MONTHS_BETWEEN( tt.DT_ULTI_PAGAMENTO,tt.DT_1_CUPAO)>=12

UNION ALL

-- Reporte 1B : valores negociables emitidos por residentes.
-- Acções E FUNDOS
SELECT 
'W0104784D' Entidad_Declarante, 
'201006' Periodo,
'1A' Clase_declaracion,
DECODE(tt.ttit_codigo,'A','01', -- Acções
                      'DS','01', --Direitos de Subscrição
                      'OD','03', -- Obrigações diversas
                      'OC','03', -- Obrigações de Caixa
                      'OSC','03', -- Obrigações s/cupão
                      'UP','02', --Unidades de PArticipação
                      'ETF','02', -- xchange traded Funds
                      'CD','04', -- Certificados de deposisto
                      'PC','04') -- Papel Comercial 
                      Clase_instrumento,
(select cod_titu_praca from {TITULO_PRACAS} tp where tp.tit_codigo=cm.tit_codigo and tp.pra_codigo ='ISI'
UNION 
SELECT alias from {TITULO_ALIAS} ta where ta.tit_codigo=cm.tit_codigo and ta.tpcodt_codigo='ISIN' ) Codigo_ISIN, --  Codigo ISIN do Instrumento
'4100' Epigrafe,
--DECODE(cct.institucional,'S',cctdoc.num_documento ,DECODE(cct.residente,'S','Z99999999','         '))  "NIF Titular",
'         '  NIF_Titular, -- só é necessário para o reporte 1A
--DECODE(cct.institucional,'N',DECODE(cct.residente,'N',cct.PAIS_CODIGO))  "País de contrapartida",
p.pais_codigo_3166A Pais_de_contrapartida, 
'         ' NIF_emisor, --Falta NIF Emissor

'P' Signo_saldo_inicial_valores,
0 Saldo_inicial_valores, 
'P' Signo_saldo_inicial_importe, 
0 Saldo_inicial_importe, 
tm.tpmov_codigo,


CASE  
    WHEN cm.preco<0.00000001 and (tm.Afecta_Saldo_Titulos='+' or tm.financeiro='N')  THEN quantidade
    ELSE 0 
END AS Oper_sin_precio_entrada_val,

CASE  
    WHEN cm.preco<0.00000001 and (tm.Afecta_Saldo_Titulos='-' or tm.financeiro='N')  THEN abs(quantidade) 
    ELSE 0 
END AS  Oper_sin_precio_salida_val,

CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S')  THEN quantidade
    ELSE 0 
END AS Operaciones_entrada_valores,

CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S')  THEN arred_vl_monetario( importancia , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR') 
    ELSE 0 
END AS Operaciones_entrada_importe,
  
CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S')  THEN abs(quantidade)
    ELSE 0 
END AS Operaciones_salida_valores,

CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S')  THEN arred_vl_monetario( abs(importancia) , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR') 
    ELSE 0 
END AS Operaciones_salida_importe,



'P' Signo_cupon_valores,
0 Cupon_valores,
'P' Signo_cupon_importe,
0 Cupon_importe, 
'P' Signo_Saldo_final_valores,
0 Saldo_final_valores,
'P' Signo_saldo_final_importe,
0 Saldo_final_importe,
tt.descricao_resumida || rpad(' ', 50-Length(tt.descricao_resumida)) Nombre_ISIN,
to_char(dsess_data,'YYYYMMDD')  Fecha_del_detalhe

FROM {CONSERVADORIA_MOVIMENTOS} cm, {TITULOS} tt, {CLIENTES_CONTAS_TITULOS} cct,  {ENTIDADES_EMITENTES} EEMI, {PAISES} P, {TIPOS_MOVIMENTOS} tm

where 

cct.cli_codigo = cm.cli_codigo
and cct.cctit_codigo = cm.cctit_codigo
and cct.loj_codigo = 'MADRID'
and cm.tit_codigo= tt.tit_codigo 

and tt.eemi_codigo=eemi.eemi_codigo

and cct.pais_codigo=p.pais_codigo
and cm.tpmov_codigo=tm.tpmov_codigo
and dsess_data>= @StartDate and dsess_data<= @EndDate
and cct.pais_Codigo!='ESP' and eemi.PAIS_CODIGO!='ESP' -- Epigrafe 4100 e Emissores não residentes
and tt.ttit_codigo  in('DS','A','UP','ETF') 

UNION ALL



-- Reporte 1A : valores negociables emitidos por não residentes.
-- Total de Valores depositados Obrigações E MERCADO MONETÁRIO
SELECT 
'W0104784D' Entidad_Declarante, 
'201006' Periodo,
'1A' Clase_declaracion,
DECODE(tt.ttit_codigo,'A','01', -- Acções
                      'DS','01', --Direitos de Subscrição
                      'OD','03', -- Obrigações diversas
                      'OC','03', -- Obrigações de Caixa
                      'OSC','03', -- Obrigações s/cupão
                      'UP','02', --Unidades de PArticipação
                      'ETF','02', -- xchange traded Funds
                      'CD','04', -- Certificados de deposisto
                      'PC','04') -- Papel Comercial 
                      Clase_instrumento,
(select cod_titu_praca from {TITULO_PRACAS} tp where tp.tit_codigo=cm.tit_codigo and tp.pra_codigo ='ISI'
UNION 
SELECT alias from {TITULO_ALIAS} ta where ta.tit_codigo=cm.tit_codigo and ta.tpcodt_codigo='ISIN' ) Codigo_ISIN, --  Codigo ISIN do Instrumento
'5100' Epigrafe,
'         '  NIF_Titular, -- só é necessário para o reporte 1A
'  ' Pais_de_contrapartida, 
'         ' NIF_emisor, --Falta NIF Emissor
'P' Signo_saldo_inicial_valores,
0 Saldo_inicial_valores, 
'P' Signo_saldo_inicial_importe, 
0 Saldo_inicial_importe, 
tm.tpmov_codigo,


CASE  
    WHEN cm.preco<0.00000001 and (tm.Afecta_Saldo_Titulos='+' or tm.financeiro='N')  THEN DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade) 
    ELSE 0 
END AS Oper_sin_precio_entrada_val,

CASE  
    WHEN cm.preco<0.0000001 and  (tm.Afecta_Saldo_Titulos='-' or tm.financeiro='N') THEN abs(DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade))  
    ELSE 0 
END AS  Oper_sin_precio_salida_val,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S') THEN DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade)   
    ELSE 0 
END AS  Operaciones_entrada_valores,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S') THEN arred_vl_monetario( importancia , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR')  
    ELSE 0 
END AS Operaciones_entrada_importe,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S') THEN abs(DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade))  
    ELSE 0 
END AS Operaciones_salida_valores,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S') THEN arred_vl_monetario( abs(importancia) , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR')
    ELSE 0 
END AS Operaciones_salida_importe,



'P' Signo_cupon_valores,
0 Cupon_valores,
'P' Signo_cupon_importe,
0 Cupon_importe, 
'P' Signo_Saldo_final_valores,
0 Saldo_final_valores,
'P' Signo_saldo_final_importe,
0 Saldo_final_importe,
tt.descricao_resumida || rpad(' ', 50-Length(tt.descricao_resumida)) Nombre_ISIN,
to_char(dsess_data,'YYYYMMDD')  Fecha_del_detalhe

FROM {CONSERVADORIA_MOVIMENTOS} cm, {TITULOS} tt, {CLIENTES_CONTAS_TITULOS} cct,  {ENTIDADES_EMITENTES} EEMI, {PAISES} P, {TIPOS_MOVIMENTOS} tm

where 

cct.cli_codigo = cm.cli_codigo
and cct.cctit_codigo = cm.cctit_codigo
and cct.loj_codigo = 'MADRID'
and cm.tit_codigo= tt.tit_codigo 

and tt.eemi_codigo=eemi.eemi_codigo

and cct.pais_codigo=p.pais_codigo
and cm.tpmov_codigo=tm.tpmov_codigo
and dsess_data>= @StartDate and dsess_data<= @EndDate
and cm.ldep_codigo='SAXO' and eemi.PAIS_CODIGO='ESP' -- Emissores nao residentes
and tt.ttit_codigo  in('OD','OC','OSC','CD','PC') -- não entra divida pulica
and MONTHS_BETWEEN( tt.DT_ULTI_PAGAMENTO,tt.DT_1_CUPAO)>=12

UNION ALL

-- Reporte 1A : valores negociables emitidos por não residentes.
-- Total de Valores depositados Acções E FUNDOS
SELECT 
'W0104784D' Entidad_Declarante, 
'201006' Periodo,
'1A' Clase_declaracion,
DECODE(tt.ttit_codigo,'A','01', -- Acções
                     'DS','01', --Direitos de Subscrição
                      'OD','03', -- Obrigações diversas
                      'OC','03', -- Obrigações de Caixa
                      'OSC','03', -- Obrigações s/cupão
                      'UP','02', --Unidades de PArticipação
                      'ETF','02', -- xchange traded Funds
                      'CD','04', -- Certificados de deposisto
                      'PC','04') -- Papel Comercial 
                      Clase_instrumento,
(select cod_titu_praca from {TITULO_PRACAS} tp where tp.tit_codigo=cm.tit_codigo and tp.pra_codigo ='ISI'
UNION 
SELECT alias from {TITULO_ALIAS} ta where ta.tit_codigo=cm.tit_codigo and ta.tpcodt_codigo='ISIN' ) CodigoISIN, --  Codigo ISIN do Instrumento
'5100' Epigrafe,
'         '  NIF_Titular, -- só é necessário para o reporte 1A
'  ' Pais_de_contrapartida, 
'         ' NIF_emisor, --Falta NIF Emissor
'P' Signo_saldo_inicial_valores,
0 Saldo_inicial_valores, 
'P' Signo_saldo_inicial_importe, 
0 Saldo_inicial_importe, 
tm.tpmov_codigo,


CASE  
    WHEN cm.preco<0.00000001 and (tm.Afecta_Saldo_Titulos='+' or tm.financeiro='N')  THEN quantidade
    ELSE 0 
END AS Oper_sin_precio_entrada_val,

CASE  
    WHEN cm.preco<0.00000001 and (tm.Afecta_Saldo_Titulos='-' or tm.financeiro='N')  THEN abs(quantidade) 
    ELSE 0 
END AS  Oper_sin_precio_salida_val,

CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S')  THEN quantidade
    ELSE 0 
END AS Operaciones_entrada_valores,

CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S')  THEN arred_vl_monetario( importancia , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR') 
    ELSE 0 
END AS Operaciones_entrada_importe,
  
CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S')  THEN abs(quantidade)
    ELSE 0 
END AS Operaciones_salida_valores,

CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S')  THEN arred_vl_monetario( abs(importancia) , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR')
    ELSE 0 
END AS Operaciones_salida_importe,


'P' Signo_cupon_valores,
0 Cupon_valores,
'P' Signo_cupon_importe,
0 Cupon_importe, 
'P' Signo_Saldo_final_valores,
0 Saldo_final_valores,
'P' Signo_saldo_final_importe,
0 Saldo_final_importe,
tt.descricao_resumida || rpad(' ', 50-Length(tt.descricao_resumida)) Nombre_ISIN,
to_char(dsess_data,'YYYYMMDD')  Fecha_del_detalhe

FROM {CONSERVADORIA_MOVIMENTOS} cm, {TITULOS} tt, {CLIENTES_CONTAS_TITULOS} cct,  {ENTIDADES_EMITENTES} EEMI, {PAISES} P, {TIPOS_MOVIMENTOS} tm

where 

cct.cli_codigo = cm.cli_codigo
and cct.cctit_codigo = cm.cctit_codigo
and cct.loj_codigo = 'MADRID'
and cm.tit_codigo= tt.tit_codigo 

and tt.eemi_codigo=eemi.eemi_codigo

and cct.pais_codigo=p.pais_codigo
and cm.tpmov_codigo=tm.tpmov_codigo
and dsess_data>= @StartDate and dsess_data<= @EndDate
and cm.ldep_codigo='SAXO' and eemi.PAIS_CODIGO!='ESP' --  Emissores não residentes
and tt.ttit_codigo  in('DS','A','UP','ETF') 

UNION ALL



-- Reporte 1A : valores negociables emitidos por não residentes.
-- Total de Valores depositados Obrigações E MERCADO MONETÁRIO
SELECT 
'W0104784D' Entidad_Declarante, 
'201006' Periodo,
'1A' Clase_declaracion,
DECODE(tt.ttit_codigo,'A','01', -- Acções
                      'DS','01', --Direitos de Subscrição
                      'OD','03', -- Obrigações diversas
                      'OC','03', -- Obrigações de Caixa
                      'OSC','03', -- Obrigações s/cupão
                      'UP','02', --Unidades de PArticipação
                      'ETF','02', -- xchange traded Funds
                      'CD','04', -- Certificados de deposisto
                      'PC','04') -- Papel Comercial 
                      Clase_instrumento,
(select cod_titu_praca from {TITULO_PRACAS} tp where tp.tit_codigo=cm.tit_codigo and tp.pra_codigo ='ISI'
UNION 
SELECT alias from {TITULO_ALIAS} ta where ta.tit_codigo=cm.tit_codigo and ta.tpcodt_codigo='ISIN' ) Codigo_ISIN, --  Codigo ISIN do Instrumento
'6100' Epigrafe,
'         '  NIF_Titular, -- só é necessário para o reporte 1A
'  ' Pais_de_contrapartida, 
'         ' NIF_emisor, --Falta NIF Emissor
'P' Signo_saldo_inicial_valores,
0 Saldo_inicial_valores, 
'P' Signo_saldo_inicial_importe, 
0 Saldo_inicial_importe, 
tm.tpmov_codigo,


CASE  
    WHEN cm.preco<0.00000001 and (tm.Afecta_Saldo_Titulos='+' or tm.financeiro='N')  THEN DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade) 
    ELSE 0 
END AS Oper_sin_precio_entrada_val,

CASE  
    WHEN cm.preco<0.0000001 and  (tm.Afecta_Saldo_Titulos='-' or tm.financeiro='N') THEN abs(DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade))  
    ELSE 0 
END AS  Oper_sin_precio_salida_val,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S') THEN DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade)   
    ELSE 0 
END AS  Operaciones_entrada_valores,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S') THEN arred_vl_monetario( importancia , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR')  
    ELSE 0 
END AS Operaciones_entrada_importe,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S') THEN abs(DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade))  
    ELSE 0 
END AS Operaciones_salida_valores,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S') THEN arred_vl_monetario( abs(importancia) , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR')
    ELSE 0 
END AS Operaciones_salida_importe,



'P' Signo_cupon_valores,
0 Cupon_valores,
'P' Signo_cupon_importe,
0 Cupon_importe, 
'P' Signo_Saldo_final_valores,
0 Saldo_final_valores,
'P' Signo_saldo_final_importe,
0 Saldo_final_importe,
tt.descricao_resumida || rpad(' ', 50-Length(tt.descricao_resumida)) Nombre_ISIN,
to_char(dsess_data,'YYYYMMDD')  Fecha_del_detalhe

FROM {CONSERVADORIA_MOVIMENTOS} cm, {TITULOS} tt, {CLIENTES_CONTAS_TITULOS} cct,  {ENTIDADES_EMITENTES} EEMI, {PAISES} P, {TIPOS_MOVIMENTOS} tm

where 

cct.cli_codigo = cm.cli_codigo
and cct.cctit_codigo = cm.cctit_codigo
and cct.loj_codigo = 'MADRID'
and cm.tit_codigo= tt.tit_codigo 

and tt.eemi_codigo=eemi.eemi_codigo

and cct.pais_codigo=p.pais_codigo
and cm.tpmov_codigo=tm.tpmov_codigo
and dsess_data>= @StartDate and dsess_data<= @EndDate
and cm.ldep_codigo!='SAXO' and eemi.PAIS_CODIGO='ESP' -- Emissores nao residentes
and tt.ttit_codigo  in('OD','OC','OSC','CD','PC') -- não entra divida pulica
and MONTHS_BETWEEN( tt.DT_ULTI_PAGAMENTO,tt.DT_1_CUPAO)>=12

UNION ALL

-- Reporte 1A : valores negociables emitidos por não residentes.
-- Total de Valores depositados Acções E FUNDOS
SELECT 
'W0104784D' Entidad_Declarante, 
'201006' Periodo,
'1A' Clase_declaracion,
DECODE(tt.ttit_codigo,'A','01', -- Acções
                      'DS','01', --Direitos de Subscrição
                      'OD','03', -- Obrigações diversas
                      'OC','03', -- Obrigações de Caixa
                      'OSC','03', -- Obrigações s/cupão
                      'UP','02', --Unidades de PArticipação
                      'ETF','02', -- xchange traded Funds
                      'CD','04', -- Certificados de deposisto
                      'PC','04') -- Papel Comercial 
                      Clase_instrumento,
(select cod_titu_praca from {TITULO_PRACAS} tp where tp.tit_codigo=cm.tit_codigo and tp.pra_codigo ='ISI'
UNION 
SELECT alias from {TITULO_ALIAS} ta where ta.tit_codigo=cm.tit_codigo and ta.tpcodt_codigo='ISIN' ) Codigo_ISIN, --  Codigo ISIN do Instrumento
'6100' Epigrafe,
'         '  NIF_Titular, -- só é necessário para o reporte 1A
'  ' Pais_de_contrapartida, 
'         ' NIF_emisor, --Falta NIF Emissor
'P' Signo_saldo_inicial_valores,
0 Saldo_inicial_valores, 
'P' Signo_saldo_inicial_importe, 
0 Saldo_inicial_importe, 
tm.tpmov_codigo,


CASE  
    WHEN cm.preco<0.00000001 and (tm.Afecta_Saldo_Titulos='+' or tm.financeiro='N')  THEN quantidade
    ELSE 0 
END AS Oper_sin_precio_entrada_val,

CASE  
    WHEN cm.preco<0.00000001 and (tm.Afecta_Saldo_Titulos='-' or tm.financeiro='N')  THEN abs(quantidade) 
    ELSE 0 
END AS  Oper_sin_precio_salida_val,

CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S')  THEN quantidade
    ELSE 0 
END AS Operaciones_entrada_valores,

CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S')  THEN arred_vl_monetario( importancia , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR')
    ELSE 0 
END AS Operaciones_entrada_importe,
  
CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S')  THEN abs(quantidade)
    ELSE 0 
END AS Operaciones_salida_valores,

CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S')  THEN arred_vl_monetario( abs(importancia) , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR') 
    ELSE 0 
END AS Operaciones_salida_importe,



'P' Signo_cupon_valores,
0 Cupon_valores,
'P' Signo_cupon_importe,
0 Cupon_importe, 
'P' Signo_Saldo_final_valores,
0 Saldo_final_valores,
'P' Signo_saldo_final_importe,
0 Saldo_final_importe,
tt.descricao_resumida || rpad(' ', 50-Length(tt.descricao_resumida)) Nombre_ISIN,
to_char(dsess_data,'YYYYMMDD')  Fecha_del_detalhe

FROM {CONSERVADORIA_MOVIMENTOS} cm, {TITULOS} tt, {CLIENTES_CONTAS_TITULOS} cct,  {ENTIDADES_EMITENTES} EEMI, {PAISES} P, {TIPOS_MOVIMENTOS} tm

where 

cct.cli_codigo = cm.cli_codigo
and cct.cctit_codigo = cm.cctit_codigo
and cct.loj_codigo = 'MADRID'
and cm.tit_codigo= tt.tit_codigo 

and tt.eemi_codigo=eemi.eemi_codigo

and cct.pais_codigo=p.pais_codigo
and cm.tpmov_codigo=tm.tpmov_codigo
and dsess_data>= @StartDate and dsess_data<= @EndDate
and cm.ldep_codigo!='SAXO' and eemi.PAIS_CODIGO!='ESP' --  Emissores não residentes
and tt.ttit_codigo  in('DS','A','UP','ETF') 

UNION ALL

-- Reporte 1B : valores negociables emitidos por residentes.
-- Obrigações E MERCADO MONETÁRIO
SELECT 
'W0104784D' Entidad_Declarante, 
'201006' Periodo,
'1B' Clase_declaracion,
DECODE(tt.ttit_codigo,'A','01', -- Acções
                      'DS','01', --Direitos de Subscrição
                      'OD','03', -- Obrigações diversas
                      'OC','03', -- Obrigações de Caixa
                      'OSC','03', -- Obrigações s/cupão
                      'UP','02', --Unidades de PArticipação
                      'ETF','02', -- xchange traded Funds
                      'CD','04', -- Certificados de deposisto
                      'PC','04') -- Papel Comercial 
                      Clase_instrumento,
(select cod_titu_praca from {TITULO_PRACAS} tp where tp.tit_codigo=cm.tit_codigo and tp.pra_codigo ='ISI'
UNION 
SELECT alias from {TITULO_ALIAS} ta where ta.tit_codigo=cm.tit_codigo and ta.tpcodt_codigo='ISIN' ) Codigo_ISIN, --  Codigo ISIN do Instrumento
'4100' Epigrafe,
--DECODE(cct.institucional,'S',cctdoc.num_documento ,DECODE(cct.residente,'S','Z99999999','         '))  "NIF Titular",
'         '  NIF_Titular, -- só é necessário para o reporte 1A
--DECODE(cct.institucional,'N',DECODE(cct.residente,'N',cct.PAIS_CODIGO))  "País de contrapartida",
p.pais_codigo_3166A Pais_de_contrapartida, 
'         ' NIF_emisor, --Falta NIF Emissor

'P' Signo_saldo_inicial_valores,
0 Saldo_inicial_valores, 
'P' Signo_saldo_inicial_importe, 
0 Saldo_inicial_importe, 
tm.tpmov_codigo,



CASE  
    WHEN cm.preco<0.00000001 and (tm.Afecta_Saldo_Titulos='+' or tm.financeiro='N')  THEN DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade) 
    ELSE 0 
END AS Oper_sin_precio_entrada_val,

CASE  
    WHEN cm.preco<0.0000001 and  (tm.Afecta_Saldo_Titulos='-' or tm.financeiro='N') THEN abs(DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade))  
    ELSE 0 
END AS  Oper_sin_precio_salida_val,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S') THEN DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade)   
    ELSE 0 
END AS  Operaciones_entrada_valores,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S') THEN arred_vl_monetario( importancia , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR') 
    ELSE 0 
END AS Operaciones_entrada_importe,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S') THEN abs(DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade))  
    ELSE 0 
END AS Operaciones_salida_valores,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S') THEN arred_vl_monetario( abs(importancia) , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR')
    ELSE 0 
END AS Operaciones_salida_importe,



'P' Signo_cupon_valores,
0 Cupon_valores,
'P' Signo_cupon_importe,
0 Cupon_importe, 
'P' Signo_Saldo_final_valores,
0 Saldo_final_valores,
'P' Signo_saldo_final_importe,
0 Saldo_final_importe,
tt.descricao_resumida || rpad(' ', 50-Length(tt.descricao_resumida)) Nombre_ISIN,
to_char(dsess_data,'YYYYMMDD')  Fecha_del_detalhe

FROM {CONSERVADORIA_MOVIMENTOS} cm, {TITULOS} tt, {CLIENTES_CONTAS_TITULOS} cct,  {ENTIDADES_EMITENTES} EEMI, {PAISES} P, {TIPOS_MOVIMENTOS} tm

where 

cct.cli_codigo = cm.cli_codigo
and cct.cctit_codigo = cm.cctit_codigo
and cct.loj_codigo = 'MADRID'
and cm.tit_codigo= tt.tit_codigo 

and tt.eemi_codigo=eemi.eemi_codigo

and cct.pais_codigo=p.pais_codigo
and cm.tpmov_codigo=tm.tpmov_codigo
and dsess_data>= @StartDate and dsess_data<= @EndDate
and cct.pais_Codigo!='ESP' and eemi.PAIS_CODIGO='ESP' -- Epigrafe 4100 e Emissores residentes
and tt.ttit_codigo  in('OD','OC','OSC','CD','PC') -- não entra divida pulica
and MONTHS_BETWEEN( tt.DT_ULTI_PAGAMENTO,tt.DT_1_CUPAO)>=12

UNION ALL

-- Reporte 1B : valores negociables emitidos por residentes.
-- Acções E FUNDOS
SELECT 
'W0104784D' Entidad_Declarante, 
'201006' Periodo,
'1B' Clase_declaracion,
DECODE(tt.ttit_codigo,'A','01', -- Acções
                      'DS','01', --Direitos de Subscrição
                      'OD','03', -- Obrigações diversas
                      'OC','03', -- Obrigações de Caixa
                      'OSC','03', -- Obrigações s/cupão
                      'UP','02', --Unidades de PArticipação
                      'ETF','02', -- xchange traded Funds
                      'CD','04', -- Certificados de deposisto
                      'PC','04') -- Papel Comercial 
                      Clase_instrumento,
(select cod_titu_praca from {TITULO_PRACAS} tp where tp.tit_codigo=cm.tit_codigo and tp.pra_codigo ='ISI'
UNION 
SELECT alias from {TITULO_ALIAS} ta where ta.tit_codigo=cm.tit_codigo and ta.tpcodt_codigo='ISIN' ) Codigo_ISIN, --  Codigo ISIN do Instrumento
'4100' Epigrafe,
--DECODE(cct.institucional,'S',cctdoc.num_documento ,DECODE(cct.residente,'S','Z99999999','         '))  "NIF Titular",
'         '  NIF_Titular, -- só é necessário para o reporte 1A
--DECODE(cct.institucional,'N',DECODE(cct.residente,'N',cct.PAIS_CODIGO))  "País de contrapartida",
p.pais_codigo_3166A Pais_de_contrapartida, 
'         ' NIF_emisor, --Falta NIF Emissor

'P' Signo_saldo_inicial_valores,
0 Saldo_inicial_valores, 
'P' Signo_saldo_inicial_importe, 
0 Saldo_inicial_importe, 
tm.tpmov_codigo,


CASE  
    WHEN cm.preco<0.00000001 and (tm.Afecta_Saldo_Titulos='+' or tm.financeiro='N')  THEN quantidade
    ELSE 0 
END AS Oper_sin_precio_entrada_val,

CASE  
    WHEN cm.preco<0.00000001 and (tm.Afecta_Saldo_Titulos='-' or tm.financeiro='N')  THEN abs(quantidade) 
    ELSE 0 
END AS  Oper_sin_precio_salida_val,

CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S')  THEN quantidade
    ELSE 0 
END AS Operaciones_entrada_valores,

CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S')  THEN arred_vl_monetario( importancia , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR') 
    ELSE 0 
END AS Operaciones_entrada_importe,
  
CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S')  THEN abs(quantidade)
    ELSE 0 
END AS Operaciones_salida_valores,

CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S')  THEN arred_vl_monetario( abs(importancia) , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR') 
    ELSE 0 
END AS Operaciones_salida_importe,



'P' Signo_cupon_valores,
0 Cupon_valores,
'P' Signo_cupon_importe,
0 Cupon_importe, 
'P' Signo_Saldo_final_valores,
0 Saldo_final_valores,
'P' Signo_saldo_final_importe,
0 Saldo_final_importe,
tt.descricao_resumida || rpad(' ', 50-Length(tt.descricao_resumida)) Nombre_ISIN,
to_char(dsess_data,'YYYYMMDD')  Fecha_del_detalhe

FROM {CONSERVADORIA_MOVIMENTOS} cm, {TITULOS} tt, {CLIENTES_CONTAS_TITULOS} cct,  {ENTIDADES_EMITENTES} EEMI, {PAISES} P, {TIPOS_MOVIMENTOS} tm

where 

cct.cli_codigo = cm.cli_codigo
and cct.cctit_codigo = cm.cctit_codigo
and cct.loj_codigo = 'MADRID'
and cm.tit_codigo= tt.tit_codigo 

and tt.eemi_codigo=eemi.eemi_codigo

and cct.pais_codigo=p.pais_codigo
and cm.tpmov_codigo=tm.tpmov_codigo
and dsess_data>= @StartDate and dsess_data<= @EndDate
and cct.pais_Codigo!='ESP' and eemi.PAIS_CODIGO='ESP' -- Epigrafe 4100 e Emissores residentes
and tt.ttit_codigo  in('DS','A','UP','ETF') 

UNION ALL


-- Reporte 1B : valores negociables emitidos por residentes.
-- Total de Valores depositados Obrigações E MERCADO MONETÁRIO
SELECT 
'W0104784D' Entidad_Declarante, 
'201006' Periodo,
'1B' Clase_declaracion,
DECODE(tt.ttit_codigo,'A','01', -- Acções
                      'DS','01', --Direitos de Subscrição
                      'OD','03', -- Obrigações diversas
                      'OC','03', -- Obrigações de Caixa
                      'OSC','03', -- Obrigações s/cupão
                      'UP','02', --Unidades de PArticipação
                      'ETF','02', -- xchange traded Funds
                      'CD','04', -- Certificados de deposisto
                      'PC','04') -- Papel Comercial 
                      Clase_instrumento,
(select cod_titu_praca from {TITULO_PRACAS} tp where tp.tit_codigo=cm.tit_codigo and tp.pra_codigo ='ISI'
UNION 
SELECT alias from {TITULO_ALIAS} ta where ta.tit_codigo=cm.tit_codigo and ta.tpcodt_codigo='ISIN' ) Codigo_ISIN, --  Codigo ISIN do Instrumento
'5100' Epigrafe,
--DECODE(cct.institucional,'S',cctdoc.num_documento ,DECODE(cct.residente,'S','Z99999999','         '))  "NIF Titular",
'         '  NIF_Titular, -- só é necessário para o reporte 1A
--DECODE(cct.institucional,'N',DECODE(cct.residente,'N',cct.PAIS_CODIGO))  "País de contrapartida",
'  ' Pais_de_contrapartida, 
'         ' NIF_emisor, --Falta NIF Emissor

'P' Signo_saldo_inicial_valores,
0 Saldo_inicial_valores, 
'P' Signo_saldo_inicial_importe, 
0 Saldo_inicial_importe, 
tm.tpmov_codigo,


CASE  
    WHEN cm.preco<0.00000001 and (tm.Afecta_Saldo_Titulos='+' or tm.financeiro='N')  THEN DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade) 
    ELSE 0 
END AS Oper_sin_precio_entrada_val,

CASE  
    WHEN cm.preco<0.0000001 and  (tm.Afecta_Saldo_Titulos='-' or tm.financeiro='N') THEN abs(DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade))  
    ELSE 0 
END AS  Oper_sin_precio_salida_val,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S') THEN DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade)   
    ELSE 0 
END AS  Operaciones_entrada_valores,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S') THEN arred_vl_monetario( importancia , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR')  
    ELSE 0 
END AS Operaciones_entrada_importe,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S') THEN abs(DECODE(tt.TP_NEGOCIACAO,'P',quantidade*tt.OBR_VALOR_NOMINAL,'C',quantidade))  
    ELSE 0 
END AS Operaciones_salida_valores,

CASE  
    WHEN cm.preco>=0.00000001 and  (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S') THEN arred_vl_monetario( abs(importancia) , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR')
    ELSE 0 
END AS Operaciones_salida_importe,



'P' Signo_cupon_valores,
0 Cupon_valores,
'P' Signo_cupon_importe,
0 Cupon_importe, 
'P' Signo_Saldo_final_valores,
0 Saldo_final_valores,
'P' Signo_saldo_final_importe,
0 Saldo_final_importe,
tt.descricao_resumida || rpad(' ', 50-Length(tt.descricao_resumida)) Nombre_ISIN,
to_char(dsess_data,'YYYYMMDD')  Fecha_del_detalhe

FROM {CONSERVADORIA_MOVIMENTOS} cm, {TITULOS} tt, {CLIENTES_CONTAS_TITULOS} cct,  {ENTIDADES_EMITENTES} EEMI, {PAISES} P, {TIPOS_MOVIMENTOS} tm

where 

cct.cli_codigo = cm.cli_codigo
and cct.cctit_codigo = cm.cctit_codigo
and cct.loj_codigo = 'MADRID'
and cm.tit_codigo= tt.tit_codigo 

and tt.eemi_codigo=eemi.eemi_codigo

and cct.pais_codigo=p.pais_codigo
and cm.tpmov_codigo=tm.tpmov_codigo
and dsess_data>= @StartDate and dsess_data<= @EndDate
and cm.ldep_codigo='SAXO' and eemi.PAIS_CODIGO='ESP' -- Emissores residentes
and tt.ttit_codigo  in('OD','OC','OSC','CD','PC') -- não entra divida pulica
and MONTHS_BETWEEN( tt.DT_ULTI_PAGAMENTO,tt.DT_1_CUPAO)>=12

UNION ALL

-- Reporte 1B : valores negociables emitidos por residentes.
-- Total de Valores depositados Acções E FUNDOS
SELECT 
'W0104784D' Entidad_Declarante, 
'201006' Periodo,
'1B' Clase_declaracion,
DECODE(tt.ttit_codigo,'A','01', -- Acções
                      'DS','01', --Direitos de Subscrição
                      'OD','03', -- Obrigações diversas
                      'OC','03', -- Obrigações de Caixa
                      'OSC','03', -- Obrigações s/cupão
                      'UP','02', --Unidades de PArticipação
                      'ETF','02', -- xchange traded Funds
                      'CD','04', -- Certificados de deposisto
                      'PC','04') -- Papel Comercial 
                      Clase_instrumento,
(select cod_titu_praca from {TITULO_PRACAS} tp where tp.tit_codigo=cm.tit_codigo and tp.pra_codigo ='ISI'
UNION 
SELECT alias from {TITULO_ALIAS} ta where ta.tit_codigo=cm.tit_codigo and ta.tpcodt_codigo='ISIN' ) Codigo_ISIN, --  Codigo ISIN do Instrumento
'5100' Epigrafe,
--DECODE(cct.institucional,'S',cctdoc.num_documento ,DECODE(cct.residente,'S','Z99999999','         '))  "NIF Titular",
'         '  NIF_Titular, -- só é necessário para o reporte 1A
--DECODE(cct.institucional,'N',DECODE(cct.residente,'N',cct.PAIS_CODIGO))  "País de contrapartida",
'  ' Pais_de_contrapartida, 
'         ' NIF_emisor, --Falta NIF Emissor
'P' Signo_saldo_inicial_valores,
0 Saldo_inicial_valores, 
'P' Signo_saldo_inicial_importe, 
0 Saldo_inicial_importe, 
tm.tpmov_codigo,


CASE  
    WHEN cm.preco<0.00000001 and (tm.Afecta_Saldo_Titulos='+' or tm.financeiro='N')  THEN quantidade
    ELSE 0 
END AS Oper_sin_precio_entrada_val,

CASE  
    WHEN cm.preco<0.00000001 and (tm.Afecta_Saldo_Titulos='-' or tm.financeiro='N')  THEN abs(quantidade) 
    ELSE 0 
END AS  Oper_sin_precio_salida_val,

CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S')  THEN quantidade
    ELSE 0 
END AS Operaciones_entrada_valores,

CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='+' and tm.financeiro='S')  THEN arred_vl_monetario( importancia , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR') 
    ELSE 0 
END AS Operaciones_entrada_importe,
  
CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S')  THEN abs(quantidade)
    ELSE 0 
END AS Operaciones_salida_valores,

CASE  
    WHEN cm.preco>=0.00000001 and (tm.Afecta_Saldo_Titulos='-' and tm.financeiro='S')  THEN arred_vl_monetario( abs(importancia) , act_cotacao_moeda(NVL(cm.div_codigo_ccord, 'EUR'), 'EUR', cm.dsess_data, 'R'), 'EUR') 
    ELSE 0 
END AS Operaciones_salida_importe,



'P' Signo_cupon_valores,
0 Cupon_valores,
'P' Signo_cupon_importe,
0 Cupon_importe, 
'P' Signo_Saldo_final_valores,
0 Saldo_final_valores,
'P' Signo_saldo_final_importe,
0 Saldo_final_importe,
tt.descricao_resumida || rpad(' ', 50-Length(tt.descricao_resumida)) Nombre_ISIN,
to_char(dsess_data,'YYYYMMDD')  Fecha_del_detalhe

FROM {CONSERVADORIA_MOVIMENTOS} cm, {TITULOS} tt, {CLIENTES_CONTAS_TITULOS} cct,  {ENTIDADES_EMITENTES} EEMI, {PAISES} P, {TIPOS_MOVIMENTOS} tm

where 

cct.cli_codigo = cm.cli_codigo
and cct.cctit_codigo = cm.cctit_codigo
and cct.loj_codigo = 'MADRID'
and cm.tit_codigo= tt.tit_codigo 

and tt.eemi_codigo=eemi.eemi_codigo

and cct.pais_codigo=p.pais_codigo
and cm.tpmov_codigo=tm.tpmov_codigo
and dsess_data>= @StartDate and dsess_data<= @EndDate
and cm.ldep_codigo='SAXO' and eemi.PAIS_CODIGO='ESP' --  Emissores residentes
and tt.ttit_codigo  in('DS','A','UP','ETF') 


)

GROUP BY

"Entidad Declarante", 
"Periodo",
"Clase declaración",
"Clase instrumento",
"Código ISIN", 
"Epigrafe",
"NIF Titular", 
"País de contrapartida", 
"NIF emisor", 
"Signo saldo inicial valores",
"Signo saldo inicial importe", 
"Signo cupón valores",
"Signo cupón importe",
"Signo Saldo final valores",
"Signo saldo final importe",
"Nombre ISIN",
"Fecha del detalhe"

Share this post


Link to post
Share on other sites
Rechousa

Desculpa, mas o que nos estás a pedir é que encontremos a agulha num palheiro  :cheesygrin:

Já experimentaste dividir a tua query em partes mais pequenas e tentar isolar o erro? Podes tentar dividir pelos UNION ALL que tens ou pelas subquery's.


Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Share this post


Link to post
Share on other sites
x_soldier

Não estou a pedir para procurarem o parâmetro incorrecto...

Queria saber se alguém sabe a/as normais razões deste erro.

Obrigado  :)

Share this post


Link to post
Share on other sites
M6

Nada que uma pequena pesquisa no Google não resolvesse: http://ora-01036.ora-code.com/


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.