219 lines
4.6 KiB
SQL
219 lines
4.6 KiB
SQL
-- Databricks notebook source
|
||
-- MAGIC %md
|
||
-- MAGIC ### dws
|
||
|
||
-- COMMAND ----------
|
||
|
||
/*
|
||
修改时间:20250707
|
||
修改人:chenwu
|
||
内容:xiehe数据源变更,逻辑调整
|
||
*/
|
||
insert overwrite dws.dws_ext_xiehe_raw_data
|
||
with
|
||
--法伯的code 和 iqviacode 的对应关系
|
||
pack_cod_2_iqvia_pack_code(
|
||
select
|
||
pack_cod
|
||
,max(IQVIA_PACK_CODE) IQVIA_PACK_CODE
|
||
from dwd.dwd_gnd_dept_pack_property
|
||
group by 1
|
||
)
|
||
,geo_mapping(
|
||
select
|
||
province_map fact_province
|
||
,city_map fact_city
|
||
,max(city_c) city
|
||
,max(province_c) province
|
||
,max(audit_cod) audit_cod
|
||
from dm.dm_ext_xiehe_geo
|
||
group by 1,2
|
||
)
|
||
,pack_countingunit(
|
||
select
|
||
pack_cod
|
||
,max(countingunit) countingunit
|
||
from dm.dm_xiehe_pack_property
|
||
group by 1
|
||
)
|
||
|
||
,underlying_ly_data(
|
||
select
|
||
c.audit_cod
|
||
,b.iqvia_pack_code
|
||
,c.city
|
||
,c.province
|
||
,a.yyyymm
|
||
,a.h_level
|
||
,a.reimburse
|
||
,a.prescription_source
|
||
,a.prescription_dept_lv1
|
||
,a.prescription_dept_lv2
|
||
,a.prescription_dept_lv3
|
||
,a.new_code
|
||
,a.atc
|
||
,a.common_name
|
||
,a.product_name
|
||
,a.manu_des
|
||
,a.pack_des
|
||
,a.drug_delivery_route
|
||
,a.nfc
|
||
,a.PackSize
|
||
,a.PackageType
|
||
,a.prescription
|
||
,a.sales_vol*nvl(d.countingunit,0) as sales_vol
|
||
-- ,a.price
|
||
,a.sales_value
|
||
,0 as prescription_ly
|
||
,0 as sales_vol_ly
|
||
-- ,0 as price_ly
|
||
,0 as sales_value_ly
|
||
from dwd.dwd_gnd_ext_xiehe_raw_data a
|
||
left join pack_cod_2_iqvia_pack_code b
|
||
on upper(a.new_code) = upper(b.pack_cod)
|
||
left join geo_mapping c
|
||
on a.area = c.fact_province
|
||
and a.city = c.fact_city
|
||
left join pack_countingunit d
|
||
on b.iqvia_pack_code = d.pack_cod
|
||
union all
|
||
select
|
||
c.audit_cod
|
||
,b.iqvia_pack_code
|
||
,c.city
|
||
,c.province
|
||
,(a.yyyymm + 100) yyyymm
|
||
,a.h_level
|
||
,a.reimburse
|
||
,a.prescription_source
|
||
,a.prescription_dept_lv1
|
||
,a.prescription_dept_lv2
|
||
,a.prescription_dept_lv3
|
||
,a.new_code
|
||
,a.atc
|
||
,a.common_name
|
||
,a.product_name
|
||
,a.manu_des
|
||
,a.pack_des
|
||
,a.drug_delivery_route
|
||
,a.nfc
|
||
,a.PackSize
|
||
,a.PackageType
|
||
,0 as prescription
|
||
,0 as sales_vol
|
||
-- ,0 as price
|
||
,0 as sales_value
|
||
,a.prescription as prescription_ly
|
||
,a.sales_vol*nvl(d.countingunit,0) as sales_vol_ly
|
||
-- ,a.price as price_ly
|
||
,a.sales_value as sales_value_ly
|
||
from dwd.dwd_gnd_ext_xiehe_raw_data a
|
||
left join pack_cod_2_iqvia_pack_code b
|
||
on upper(a.new_code) = upper(b.pack_cod)
|
||
left join geo_mapping c
|
||
on a.area = c.fact_province
|
||
and a.city = c.fact_city
|
||
left join pack_countingunit d
|
||
on b.iqvia_pack_code = d.pack_cod
|
||
where (a.yyyymm + 100) <= (select max(yyyymm) from dwd.dwd_gnd_ext_xiehe_raw_data)
|
||
)
|
||
|
||
select
|
||
yyyymm
|
||
,iqvia_pack_code
|
||
,AUDIT_COD
|
||
,city
|
||
,province
|
||
,replace(h_level,'.0','') h_level
|
||
,reimburse
|
||
,null as reimburse_type
|
||
,prescription_source
|
||
,prescription_dept_lv1
|
||
,prescription_dept_lv2
|
||
,prescription_dept_lv3
|
||
,prescription_dept_lv3 dept_name
|
||
,new_code
|
||
,atc
|
||
,common_name
|
||
,product_name
|
||
,manu_des
|
||
,pack_des
|
||
,drug_delivery_route
|
||
,nfc
|
||
,PackSize
|
||
,PackageType
|
||
,sum(prescription) prescription
|
||
,SUM(sales_vol) counting_unit
|
||
,null as price
|
||
,SUM(sales_value) sales_value
|
||
,sum(prescription_ly) prescription_ly
|
||
,SUM(sales_vol_ly) counting_unit_ly
|
||
,null as price_ly
|
||
,SUM(sales_value_ly) sales_value_ly
|
||
,from_utc_timestamp(current_timestamp(),'UTC+8') etl_insert_dt
|
||
,from_utc_timestamp(current_timestamp(),'UTC+8') etl_update_dt
|
||
from underlying_ly_data
|
||
group by
|
||
yyyymm
|
||
,iqvia_pack_code
|
||
,AUDIT_COD
|
||
,city
|
||
,province
|
||
,h_level
|
||
,reimburse
|
||
-- ,null as reimburse_type
|
||
,prescription_source
|
||
,prescription_dept_lv1
|
||
,prescription_dept_lv2
|
||
,prescription_dept_lv3
|
||
,prescription_dept_lv3
|
||
,new_code
|
||
,atc
|
||
,common_name
|
||
,product_name
|
||
,manu_des
|
||
,pack_des
|
||
,drug_delivery_route
|
||
,nfc
|
||
,PackSize
|
||
,PackageType
|
||
|
||
-- COMMAND ----------
|
||
|
||
-- MAGIC %md
|
||
-- MAGIC ### dm
|
||
|
||
-- COMMAND ----------
|
||
|
||
insert overwrite dm.dm_ext_xiehe_sales
|
||
select
|
||
yyyymm
|
||
,iqvia_pack_code
|
||
,AUDIT_COD
|
||
,city
|
||
,province
|
||
,h_level
|
||
,reimburse
|
||
,reimburse_type
|
||
,prescription_source
|
||
,prescription_dept_lv1
|
||
,prescription_dept_lv2
|
||
,prescription_dept_lv3
|
||
,dept_name
|
||
,new_code
|
||
,atc
|
||
,common_name
|
||
,product_name
|
||
,manu_des
|
||
,pack_des
|
||
,drug_delivery_route
|
||
,nfc
|
||
,prescription
|
||
,counting_unit
|
||
,price
|
||
,sales_value
|
||
,prescription_ly
|
||
,counting_unit_ly
|
||
,price_ly
|
||
,sales_value_ly
|
||
from dws.dws_ext_xiehe_raw_data |