Add EXTERNAL SQL scripts

This commit is contained in:
2026-04-20 14:55:25 +08:00
parent c05ba7ec7e
commit b4979eed82
344 changed files with 61619 additions and 0 deletions

View 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