Está en la página 1de 3

create table hermes.

tmp_est_tvfremrdesar3
( ID_VIAJE NUMBER not null, ID_PAIS NUMBER, ID_AUTONOMIA NUMBER, ID_ZONADESTINO
NUMBER not null,
ID_PERSONA NUMBER, ID_SOLICITUD NUMBER, ID_POB_ORIGEN NUMBER, ID_PROVINCIA
NUMBER, TURNO_ID NUMBER not null,
NUMEROBILLETE VARCHAR2(255), TIPODOCUMENTOIDENTIFICACION VARCHAR2(255) not
null,
DOCUMENTOIDENTIFICACION VARCHAR2(255) not null, COD_POBORIGEN VARCHAR2(255),
LIT_POBORIGEN VARCHAR2(255),
CODIGO_PROVINCIA NUMBER, LIT_PROVINCIA VARCHAR2(255), CODIGO_AUTONOMIA
VARCHAR2(255), LIT_AUTONOMIA VARCHAR2(255),
CODIGO_PAIS VARCHAR2(255), LIT_PAIS VARCHAR2(255), CODIGOZONADESTINO
VARCHAR2(255) not null,
DESCRIPCIONZONADESTINO VARCHAR2(255) not null, IMPORTE NUMBER, TIPO_PERSONA
VARCHAR2(255),
ESTADOCIVIL VARCHAR2(255), FECHANACIMIENTO DATE, SEXO VARCHAR2(255),
TOTALPENSIONESDECLARADAS NUMBER)

insert into tmp_est_tvfremrdesar3


( id_viaje, id_pais, id_autonomia, id_zonadestino, id_persona, id_solicitud,
id_pob_origen,
id_provincia, turno_id, numerobillete, tipodocumentoidentificacion,
documentoidentificacion,
cod_poborigen, lit_poborigen, codigo_provincia, lit_provincia,
codigo_autonomia, lit_autonomia,
codigo_pais, lit_pais, codigozonadestino, descripcionzonadestino, importe,
tipo_persona,
estadocivil, fechanacimiento, sexo, totalpensionesdeclaradas)

select v.id as id_viaje, pa.id as id_pais, a.id as id_autonomia, z.id as


id_zonadestino,
pe.id as id_persona, s.id as id_solicitud, p.id as id_pob_origen, pr.id as
id_provincia,
v.turno_id, v.numerobillete, v.tipodocumentoidentificacion,
v.documentoidentificacion,
p.codigoimserso as cod_poborigen, p.descripcion as lit_poborigen,
pr.codigoimserso as codigo_provincia,
pr.descripcion as lit_provincia, a.codigoimserso as codigo_autonomia,
a.descripcion as lit_autonomia,
pa.codigoimserso as codigo_pais, pa.descripcion as lit_pais,
z.codigozonadestino, z.descripcionzonadestino,
vf.importe, pe.tipoclase as tipo_persona, pe.estadocivil, pe.fechanacimiento,
pe.sexo ,
(select sum(ps.cuantiamensual)
from pension ps, pensiondeclarada pd where pe.id = pd.persona_id and pd.id
= ps.id group by pe.id )
as totalpensionesdeclaradas
from viaje v left join viajefacturado vf on vf.id = v.id left join
poblacion p on (v.poblacionorigen_id = p.id)
left join provincia pr on (p.provincia_id = pr.id) left join autonomia
a on (pr.autonomia_id = a.id)
left join pais pa on (a.pais_id = pa.id) left join zonadestino z
on(v.zonadestino_id = z.id)
left join persona pe on (v.documentoidentificacion =
pe.documentoidentificacion)
left join solicitante sol on (sol.id = pe.id) left join conyuge con on
(con.id = pe.id)
left join solicitud s on (s.id = sol.solicitud_id or s.id =
con.solicitud_id)
where z.turno_id = 63 and v.turno_id = 63 and s.plazo_id in ( 65 , 66 )
and s.estado = 'CORRECTO'

insert into tmp_est_tvfremrdesar3 ( id_viaje, id_pais, id_autonomia,


id_zonadestino, id_persona, id_solicitud, id_pob_origen,
id_provincia, turno_id, numerobillete, tipodocumentoidentificacion,
documentoidentificacion, cod_poborigen,
lit_poborigen, codigo_provincia, lit_provincia, codigo_autonomia, lit_autonomia,
codigo_pais, lit_pais,
codigozonadestino, descripcionzonadestino, importe, tipo_persona, estadocivil,
fechanacimiento, sexo, totalpensionesdeclaradas)
select v.id as id_viaje, pa.id as id_pais, a.id as id_autonomia, z.id as
id_zonadestino, null as id_persona, null as id_solicitud,
p.id as id_pob_origen, pr.id as id_provincia, v.turno_id, v.numerobillete,
v.tipodocumentoidentificacion, v.documentoidentificacion,
p.codigoimserso as cod_poborigen, p.descripcion as lit_poborigen,
pr.codigoimserso as codigo_provincia, pr.descripcion as lit_provincia,
a.codigoimserso as codigo_autonomia, a.descripcion as lit_autonomia,
pa.codigoimserso as codigo_pais, pa.descripcion as lit_pais,
z.codigozonadestino, z.descripcionzonadestino, vf.importe, null as
tipo_persona, null as estado_civil, null as fecha_nacimiento,
null as sexo, null as totalpensionesdeclaradas

from viaje v left join viajefacturado vf on vf.id = v.id left join poblacion p
on
(v.poblacionorigen_id = p.id) left join provincia pr on (p.provincia_id =
pr.id)
left join autonomia a on (pr.autonomia_id = a.id) left join pais pa on
(a.pais_id = pa.id)
left join zonadestino z on(v.zonadestino_id = z.id) where z.turno_id = 63 and
v.turno_id = 63
and not exists
(select pe.documentoidentificacion
from persona pe left join solicitante sol on (sol.id = pe.id) left join
conyuge con
on (con.id = pe.id) left join hijo hi on (hi.id = pe.id)
left join solicitud s on (s.id = sol.solicitud_id or s.id = con.solicitud_id
or s.id = hi.solicitud_id)
where s.plazo_id in ( 65 , 66 ) and s.estado = 'CORRECTO' and
v.documentoidentificacion = pe.documentoidentificacion )

insert into tmp_est_tvfremrdesar3 ( id_viaje, id_pais, id_autonomia,


id_zonadestino, id_persona, id_solicitud, id_pob_origen,
id_provincia, turno_id, numerobillete, tipodocumentoidentificacion,
documentoidentificacion, cod_poborigen, lit_poborigen,
codigo_provincia, lit_provincia, codigo_autonomia, lit_autonomia, codigo_pais,
lit_pais, codigozonadestino, descripcionzonadestino,
importe, tipo_persona, estadocivil, fechanacimiento, sexo,
totalpensionesdeclaradas)
select distinct v.id as id_viaje, pa.id as id_pais, a.id as id_autonomia, z.id
as id_zonadestino, pe.id as id_persona,
s.id as id_solicitud, p.id as id_pob_origen, pr.id as id_provincia, v.turno_id,
v.numerobillete, v.tipodocumentoidentificacion,
v.documentoidentificacion, p.codigoimserso as cod_poborigen, p.descripcion as
lit_poborigen, pr.codigoimserso as codigo_provincia,
pr.descripcion as lit_provincia, a.codigoimserso as codigo_autonomia,
a.descripcion as lit_autonomia, pa.codigoimserso as codigo_pais,
pa.descripcion as lit_pais, z.codigozonadestino, z.descripcionzonadestino,
vf.importe, pe.tipoclase as tipo_persona, pe.estadocivil,
pe.fechanacimiento, pe.sexo, null as totalpensionesdeclaradas from viaje v left
join viajefacturado vf on vf.id = v.id
left join poblacion p on (v.poblacionorigen_id = p.id) left join provincia pr on
(p.provincia_id = pr.id)
left join autonomia a on (pr.autonomia_id = a.id) left join pais pa on
(a.pais_id = pa.id)
left join zonadestino z on(v.zonadestino_id = z.id) inner join persona pe on
(v.documentoidentificacion = pe.documentoidentificacion)
inner join hijo hi on (hi.id = pe.id) inner join solicitud s on (s.id =
hi.solicitud_id)
where z.turno_id = 63 and v.turno_id = 63 and s.plazo_id in ( 65 , 66 ) and
s.estado = 'CORRECTO'
and not exists (select n.id_viaje from tmp_est_tvfremrdesar3 n where n.id_viaje
= v.id)

select nvl(edad, 0), count(*) as personas


from ( select t.numerobillete,t.id_zonadestino,
( case when t.fechaNacimiento is null then 0 else
round(months_between('31/12/2016', to_char(t.fechaNacimiento, 'dd/mm/yyyy'))/12)
end ) as edad
from tmp_est_tvfremrdesar3 t where t.turno_id = 63)
group by edad order by edad

También podría gustarte