Add EXTERNAL SQL scripts
This commit is contained in:
219
EXTERNAL/XIEHE/04 dm_ext_xiehe_sales.sql
Normal file
219
EXTERNAL/XIEHE/04 dm_ext_xiehe_sales.sql
Normal file
@@ -0,0 +1,219 @@
|
||||
-- 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
|
||||
Reference in New Issue
Block a user