85 lines
2.6 KiB
SQL
85 lines
2.6 KiB
SQL
-- Databricks notebook source
|
||
-----------------------------------------------------------------------------------
|
||
--修改时间:20241021
|
||
--修改人:FanXujia
|
||
--修改内容:
|
||
--只取最新年-1 ~ 最新年范围内的,称为“2年共有”。增加
|
||
-----------------------------------------------------------------------------------
|
||
--共有机构
|
||
insert overwrite table dm.dm_aia_hp_flag
|
||
with max_year as (
|
||
select
|
||
max(cast(year as int)) as max_year,
|
||
max(cast(year as int) - 1) as max_year_ly
|
||
from dwd.dwd_gnd_hospital_not_provided
|
||
)
|
||
,hp_flag as (
|
||
select
|
||
distinct concat(t1.year, '-Y') as hp_his_flag,
|
||
case when length(t1.cpa_hospital_code) < 7 then right(concat('0000000',t1.cpa_hospital_code),7) else t1.cpa_hospital_code end as cpa_hospital_code
|
||
from
|
||
dwd.dwd_gnd_hospital_not_provided t1
|
||
cross join max_year t2
|
||
where cast(t1.year as int) >= t2.max_year_ly
|
||
)
|
||
,hp_flag2 as (
|
||
SELECT
|
||
cpa_hospital_code,
|
||
CONCAT_WS(' ∩ ', SORT_ARRAY(COLLECT_LIST(hp_his_flag))) AS FLAG
|
||
FROM
|
||
hp_flag
|
||
GROUP BY
|
||
cpa_hospital_code
|
||
)
|
||
,inst_mapping as (
|
||
-- select
|
||
-- distinct right(concat('0000000', org_cd), 7) org_cd,
|
||
-- ins_cd
|
||
-- from
|
||
-- dwd.dwd_gnd_hospitalmapping
|
||
select distinct
|
||
case when length(cpa_hospital_code) < 7 then right(concat('0000000',cpa_hospital_code),7) else cpa_hospital_code end as cpa_hospital_code,
|
||
ins_cd_nl as inst_code
|
||
from dwd.dwd_gnd_hospital_not_provided
|
||
)
|
||
|
||
,ALL_INS as (
|
||
select distinct inst_code
|
||
from dm.dm_ext_aia_sales
|
||
)
|
||
|
||
,flag as (
|
||
select distinct
|
||
coalesce(t2.inst_code,t1.cpa_hospital_code) as inst_code,
|
||
t1.flag as aia_hp_flag,
|
||
'Y' as FLAG,
|
||
'AIA(Monthly)' as DATA_SOURCE
|
||
from hp_flag2 t1
|
||
left join inst_mapping t2 on t1.cpa_hospital_code = t2.cpa_hospital_code
|
||
where
|
||
length(t1.flag) > 6
|
||
union all
|
||
select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'IQVIA-CHPA(Monthly)' as DATA_SOURCE
|
||
union all
|
||
select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'XH Data(Quarterly)' as DATA_SOURCE
|
||
union all
|
||
select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'EC(Monthly)' as DATA_SOURCE
|
||
union all
|
||
select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'Retail(Quarterly)' as DATA_SOURCE
|
||
union all
|
||
select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'CHC(Quarterly)' as DATA_SOURCE
|
||
union all
|
||
select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'THC(Quarterly)' as DATA_SOURCE
|
||
union all
|
||
select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'IQVIA-COUNTY(Quarterly)' as DATA_SOURCE
|
||
)
|
||
|
||
select t1.inst_code,
|
||
NVL(t2.aia_hp_flag,'') as aia_hp_flag,
|
||
NVL(t2.FLAG,'N') as FLAG,
|
||
'AIA(Monthly)' as DATA_SOURCE
|
||
from ALL_INS t1
|
||
left join flag t2
|
||
on t1.inst_code = t2.inst_code
|
||
|