Files
MarketAnalysis-ETL/AIA/03 dm_aia_flag.sql
2026-04-27 11:04:09 +08:00

85 lines
2.6 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- 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