Add EXTERNAL SQL scripts
This commit is contained in:
418
EXTERNAL/CHC/02 DM_TF_EXT_CHC_SALES.sql
Normal file
418
EXTERNAL/CHC/02 DM_TF_EXT_CHC_SALES.sql
Normal file
@@ -0,0 +1,418 @@
|
||||
-- Databricks notebook source
|
||||
-- CREATE OR REPLACE TABLE DM.DM_TF_EXT_CHC_SALES (
|
||||
-- YYYYMM STRING,
|
||||
-- PACK_CODE STRING,
|
||||
-- CORP_CODE STRING,
|
||||
-- AUDIT_CODE STRING,
|
||||
-- PLATFORM_TYPE STRING,
|
||||
-- STORE_NAME STRING,
|
||||
-- STORE_TYPE STRING,
|
||||
-- REGION_TYPE STRING,
|
||||
-- PACK_FLAG INT,
|
||||
-- PROD_FLAG INT,
|
||||
-- DTP_FLAG INT,
|
||||
-- SALES_UNIT_CAL DECIMAL(38,10),
|
||||
-- SALES_UNIT_CAL_LY DECIMAL(38,10),
|
||||
-- SALES_VALUE_CAL DECIMAL(38,10),
|
||||
-- SALES_VALUE_CAL_LY DECIMAL(38,10),
|
||||
-- CONUTING_UNIT DECIMAL(38,10),
|
||||
-- CONUTING_UNIT_LY DECIMAL(38,10),
|
||||
-- DATA_SOURCE STRING,
|
||||
-- INST_CODE STRING COMMENT '内部机构编码',
|
||||
-- CMPS_FLAG STRING COMMENT '分子式标签',
|
||||
-- DEPT_NAME STRING COMMENT '科室名称',
|
||||
-- PRESCRIPTION DECIMAL(38,10) COMMENT '处方张数',
|
||||
-- PRESCRIPTION_LY DECIMAL(38,10) COMMENT '去年同期处方张数',
|
||||
-- NEW_CODE STRING COMMENT '主数据关联CODE',
|
||||
-- AREA STRING COMMENT '城市',
|
||||
-- H_LEVEL STRING COMMENT '医院类型',
|
||||
-- REIMBURSE STRING COMMENT '报销情况',
|
||||
-- REIMBURSE_TYPE STRING COMMENT '报销类型',
|
||||
-- PRESCRIPTION_SOURCE STRING COMMENT '处方来源',
|
||||
-- ETL_INSERT_DT TIMESTAMP,
|
||||
-- ETL_UPDATE_DT TIMESTAMP
|
||||
-- )
|
||||
-- USING delta
|
||||
-- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DM/dm_tf_ext_chc_sales';
|
||||
-- 上面是生产环境location,下面是测试环境location
|
||||
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_tf_ext_chc_sales';
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
CREATE OR REPLACE TEMPORARY VIEW RAW_DATA
|
||||
AS
|
||||
SELECT
|
||||
CASE
|
||||
WHEN SUBSTRING(YQ, 5, 2) = 'Q1'
|
||||
THEN CONCAT (SUBSTRING(YQ, 1, 4), '03')
|
||||
WHEN SUBSTRING(YQ, 5, 2) = 'Q2'
|
||||
THEN CONCAT (SUBSTRING(YQ, 1, 4), '06')
|
||||
WHEN SUBSTRING(YQ, 5, 2) = 'Q3'
|
||||
THEN CONCAT (SUBSTRING(YQ, 1, 4), '09')
|
||||
WHEN SUBSTRING(YQ, 5, 2) = 'Q4'
|
||||
THEN CONCAT (SUBSTRING(YQ, 1, 4), '12')
|
||||
ELSE YQ
|
||||
END AS YQ,
|
||||
CITY_C,
|
||||
PACK_COD,
|
||||
PROD_COD,
|
||||
VALUE,
|
||||
TOTALUNIT,
|
||||
COUNTINGUNIT
|
||||
FROM
|
||||
DWD.DWD_GND_CHC_RAWDATA
|
||||
WHERE
|
||||
YEAR >= '2021'
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
CREATE OR REPLACE TEMPORARY VIEW FILTER_YM
|
||||
AS
|
||||
SELECT
|
||||
MAX(YQ) AS MAX_YYYYMM,
|
||||
CONCAT(CAST(FLOOR(MAX(YQ)/100-1) AS STRING),'01') AS MIN_YYYYMM
|
||||
FROM
|
||||
RAW_DATA
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
CREATE OR REPLACE TEMPORARY VIEW CORP_DATA
|
||||
AS
|
||||
SELECT
|
||||
PACK_COD,
|
||||
CORP_COD,
|
||||
CORP_DES
|
||||
FROM
|
||||
DM.DM_IMS_TD_PACK_PROPERTY
|
||||
GROUP BY
|
||||
PACK_COD,
|
||||
CORP_COD,
|
||||
CORP_DES
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
CREATE OR REPLACE TEMPORARY VIEW PACK_DATA
|
||||
AS
|
||||
SELECT
|
||||
DISTINCT
|
||||
IQVIA_PACK_CODE,
|
||||
IQVIA_PROD_CODE,
|
||||
PACK_COD,
|
||||
APP1_COD,
|
||||
APP1_DES,
|
||||
APP1_DES_C,
|
||||
APP2_COD,
|
||||
APP2_DES,
|
||||
APP2_DES_C,
|
||||
APP3_COD,
|
||||
APP3_DES,
|
||||
APP3_DES_C,
|
||||
ATC1_COD,
|
||||
ATC1_DES,
|
||||
ATC1_DES_C,
|
||||
ATC2_COD,
|
||||
ATC2_DES,
|
||||
ATC2_DES_C,
|
||||
ATC3_COD,
|
||||
ATC3_DES,
|
||||
ATC3_DES_C,
|
||||
ATC4_COD,
|
||||
ATC4_DES,
|
||||
ATC4_DES_C,
|
||||
BIO_DESC,
|
||||
CMPS_COD,
|
||||
CMPS_DES,
|
||||
CMPS_DES_C,
|
||||
CORP_COD,
|
||||
CORP_DES,
|
||||
CORP_DES_C,
|
||||
EDL_DESC,
|
||||
ETH_OTC_DESC,
|
||||
GENE_ORIG_DESC,
|
||||
GQCE_DESC,
|
||||
MANU_COD,
|
||||
MANU_DES,
|
||||
MANU_DES_C,
|
||||
MNFL_COD,
|
||||
MNFL_DES,
|
||||
NRDL_DESC,
|
||||
PACK_DES,
|
||||
STGH_DES,
|
||||
PACK_LCH,
|
||||
PAED_DESC,
|
||||
PROD_DES,
|
||||
PROD_DES_C,
|
||||
TCM_DESC,
|
||||
VBP_DESC,
|
||||
BUILTINARCHIVEDATE,
|
||||
SOURCE_FILE_PATH,
|
||||
SOURCE_FILE_NAME,
|
||||
ETL_INSERT_DT,
|
||||
COUNTINGUNIT
|
||||
FROM
|
||||
DWD.DWD_GND_EXT_CHC_PACK_PROPERTY
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
--CHC本身唯独表 存在CORP_COD以及 CORP_DES 与手工数据不一致的问题
|
||||
CREATE OR REPLACE TEMPORARY VIEW PACK_WIHT_CORP_DATA
|
||||
AS
|
||||
SELECT
|
||||
T1.PACK_COD,
|
||||
T1.IQVIA_PACK_CODE,
|
||||
T1.COUNTINGUNIT,
|
||||
COALESCE(T2.CORP_COD, T1.CORP_COD) AS CORP_COD,
|
||||
COALESCE(T2.CORP_DES, T1.CORP_DES) AS CORP_DES
|
||||
FROM
|
||||
PACK_DATA T1
|
||||
LEFT JOIN
|
||||
CORP_DATA T2
|
||||
ON
|
||||
T1.IQVIA_PACK_CODE = T2.PACK_COD
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
--GEO相关信息 在CHPA中没有 苏州、无锡、福州等数据,根据业务反馈,按照 CITY_C当作AUDIT_COD
|
||||
CREATE OR REPLACE TEMPORARY VIEW DIM_EXCHC_GEO
|
||||
AS
|
||||
SELECT
|
||||
T1.CITY_E,
|
||||
CONCAT (T1.CITY_C, '市') AS CITY_C,
|
||||
UPPER(NVL (T2.AUDIT_COD, T1.CITY_E)) AS AUDIT_COD
|
||||
FROM
|
||||
DWD.DWD_GND_EXT_CHC_GEO T1
|
||||
LEFT JOIN
|
||||
DM.DM_IMS_TD_GEO T2
|
||||
ON
|
||||
T1.CITY_E = T2.CITY
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
CREATE OR REPLACE TEMPORARY VIEW RAW_DATA_WIHT_PACK_CORP_GEO_DATA
|
||||
AS
|
||||
SELECT
|
||||
T1.YQ,
|
||||
T1.CITY_C,
|
||||
T3.IQVIA_PACK_CODE AS PACK_COD,
|
||||
T3.CORP_COD AS CORP_COD,
|
||||
C.AUDIT_COD AS AUDIT_COD,
|
||||
T1.PROD_COD,
|
||||
T1.VALUE,
|
||||
T1.TOTALUNIT,
|
||||
T1.TOTALUNIT * NVL (T3.COUNTINGUNIT, 1) AS COUNTINGUNIT
|
||||
FROM
|
||||
RAW_DATA T1
|
||||
LEFT JOIN
|
||||
PACK_WIHT_CORP_DATA T3
|
||||
ON
|
||||
T1.PACK_COD = T3.PACK_COD
|
||||
LEFT JOIN
|
||||
DIM_EXCHC_GEO C
|
||||
ON
|
||||
T1.CITY_C = C.CITY_C
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
CREATE OR REPLACE TEMPORARY VIEW RAW_DATA_WIHT_LY
|
||||
AS
|
||||
SELECT
|
||||
A.YQ,
|
||||
A.AUDIT_COD,
|
||||
A.PACK_COD,
|
||||
A.CORP_COD,
|
||||
SUM(A.VALUE) VALUE,
|
||||
SUM(A.TOTALUNIT) TOTALUNIT,
|
||||
SUM(A.COUNTINGUNIT) COUNTINGUNIT,
|
||||
SUM(VALUE_LY) VALUE_LY,
|
||||
SUM(TOTALUNIT_LY) TOTALUNIT_LY,
|
||||
SUM(COUNTINGUNIT_LY) COUNTINGUNIT_LY
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
T1.YQ,
|
||||
T1.AUDIT_COD,
|
||||
T1.PACK_COD,
|
||||
T1.CORP_COD,
|
||||
T1.VALUE,
|
||||
T1.TOTALUNIT,
|
||||
T1.COUNTINGUNIT,
|
||||
0 VALUE_LY,
|
||||
0 TOTALUNIT_LY,
|
||||
0 COUNTINGUNIT_LY
|
||||
FROM
|
||||
RAW_DATA_WIHT_PACK_CORP_GEO_DATA T1
|
||||
UNION ALL
|
||||
SELECT
|
||||
CAST(T1.YQ + 100 AS INT),
|
||||
T1.AUDIT_COD,
|
||||
T1.PACK_COD,
|
||||
T1.CORP_COD,
|
||||
0 VALUE,
|
||||
0 TOTALUNIT,
|
||||
0 COUNTINGUNIT,
|
||||
T1.VALUE VALUE_LY,
|
||||
T1.TOTALUNIT TOTALUNIT_LY,
|
||||
T1.COUNTINGUNIT COUNTINGUNIT_LY
|
||||
FROM
|
||||
RAW_DATA_WIHT_PACK_CORP_GEO_DATA AS T1
|
||||
CROSS JOIN
|
||||
FILTER_YM AS T2
|
||||
WHERE
|
||||
T1.YQ + 100 <= T2.MAX_YYYYMM
|
||||
) A
|
||||
GROUP BY
|
||||
A.YQ,
|
||||
A.AUDIT_COD,
|
||||
A.PACK_COD,
|
||||
A.CORP_COD
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
CREATE OR REPLACE TEMPORARY VIEW RAW_DATA_FINAL
|
||||
AS
|
||||
SELECT
|
||||
T1.YQ AS YYYYMM,
|
||||
T1.AUDIT_COD,
|
||||
T1.PACK_COD,
|
||||
T1.CORP_COD,
|
||||
SUM(TOTALUNIT) AS SALES_UNIT_CAL, -- TOTALUNIT,
|
||||
SUM(TOTALUNIT_LY) AS SALES_UNIT_CAL_LY, --TOTALUNIT_LY,
|
||||
SUM(VALUE) AS SALES_VALUE_CAL, --VALUE,
|
||||
SUM(VALUE_LY) AS SALES_VALUE_CAL_LY,
|
||||
SUM(COUNTINGUNIT) AS CONUTING_UNIT, --COUNTINGUNIT,
|
||||
SUM(COUNTINGUNIT_LY) AS CONUTING_UNIT_LY,
|
||||
'CHC(Quarterly)' AS DATA_SOURCE
|
||||
FROM
|
||||
RAW_DATA_WIHT_LY T1
|
||||
GROUP BY
|
||||
T1.YQ,
|
||||
T1.AUDIT_COD,
|
||||
T1.PACK_COD,
|
||||
T1.CORP_COD
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
CREATE OR REPLACE TEMPORARY VIEW DM_TF_EXT_CHC_SALES AS
|
||||
SELECT
|
||||
A.YYYYMM,
|
||||
A.PACK_COD AS PACK_CODE,
|
||||
A.AUDIT_COD AS AUDIT_CODE,
|
||||
'CHC(Quarterly)' DATA_SOURCE,
|
||||
-------------------------------------
|
||||
SALES_UNIT_CAL,
|
||||
SALES_UNIT_CAL_LY,
|
||||
SALES_VALUE_CAL,
|
||||
SALES_VALUE_CAL_LY,
|
||||
CONUTING_UNIT,
|
||||
CONUTING_UNIT_LY,
|
||||
null as prescription,
|
||||
null as prescription_ly,
|
||||
-------------------------------------
|
||||
--Retail藏数逻辑标签------------------
|
||||
1 PACK_FLAG,
|
||||
1 PROD_FLAG,
|
||||
0 DTP_FLAG,
|
||||
null as cmps_flag,
|
||||
-------------------------------------
|
||||
--EC数据标签--------------------------
|
||||
'' PLATFORM_TYPE,
|
||||
'' STORE_NAME,
|
||||
'' STORE_TYPE,
|
||||
-------------------------------------
|
||||
--COUNTY数据标签----------------------
|
||||
'' REGION_TYPE,
|
||||
-------------------------------------
|
||||
--AIA数据标签-------------------------
|
||||
null inst_code, --可以移除,报告没有使用
|
||||
-------------------------------------
|
||||
--XIE HE 数据标签---------------------
|
||||
'' as dept_name,
|
||||
'' as new_code,
|
||||
'' as area,
|
||||
'' as h_level,
|
||||
'' as reimburse,
|
||||
'' as reimburse_type,
|
||||
'' as prescription_source,
|
||||
-------------------------------------
|
||||
'' as CORP_CODE --可以移除,报告没有使用E
|
||||
-------------------------------------
|
||||
FROM
|
||||
RAW_DATA_FINAL A
|
||||
WHERE
|
||||
YYYYMM
|
||||
>= (
|
||||
SELECT
|
||||
CAST((LEFT(MAX(YYYYMM), 4) - 3) * 100 + 1 AS INT)
|
||||
FROM
|
||||
RAW_DATA_FINAL
|
||||
)
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
INSERT OVERWRITE TABLE DM.DM_TF_EXT_CHC_SALES (
|
||||
YYYYMM,
|
||||
PACK_CODE,
|
||||
AUDIT_CODE,
|
||||
DATA_SOURCE,
|
||||
SALES_UNIT_CAL,
|
||||
SALES_UNIT_CAL_LY,
|
||||
SALES_VALUE_CAL,
|
||||
SALES_VALUE_CAL_LY,
|
||||
CONUTING_UNIT,
|
||||
CONUTING_UNIT_LY,
|
||||
PRESCRIPTION,
|
||||
PRESCRIPTION_LY,
|
||||
PACK_FLAG,
|
||||
PROD_FLAG,
|
||||
DTP_FLAG,
|
||||
CMPS_FLAG,
|
||||
PLATFORM_TYPE,
|
||||
STORE_NAME,
|
||||
STORE_TYPE,
|
||||
REGION_TYPE,
|
||||
INST_CODE,
|
||||
DEPT_NAME,
|
||||
NEW_CODE,
|
||||
AREA,
|
||||
H_LEVEL,
|
||||
REIMBURSE,
|
||||
REIMBURSE_TYPE,
|
||||
PRESCRIPTION_SOURCE,
|
||||
CORP_CODE,
|
||||
ETL_INSERT_DT,
|
||||
ETL_UPDATE_DT
|
||||
)
|
||||
SELECT
|
||||
YYYYMM,
|
||||
NVL(NULLIF(PACK_CODE, ''), CONCAT('PACK_CODE_', DATA_SOURCE)) AS PACK_CODE,
|
||||
NVL(NULLIF(AUDIT_CODE, ''), 'ROC') AS AUDIT_CODE,
|
||||
DATA_SOURCE,
|
||||
SALES_UNIT_CAL,
|
||||
SALES_UNIT_CAL_LY,
|
||||
SALES_VALUE_CAL,
|
||||
SALES_VALUE_CAL_LY,
|
||||
CONUTING_UNIT,
|
||||
CONUTING_UNIT_LY,
|
||||
PRESCRIPTION,
|
||||
PRESCRIPTION_LY,
|
||||
PACK_FLAG,
|
||||
PROD_FLAG,
|
||||
DTP_FLAG,
|
||||
CMPS_FLAG,
|
||||
PLATFORM_TYPE,
|
||||
STORE_NAME,
|
||||
STORE_TYPE,
|
||||
REGION_TYPE,
|
||||
INST_CODE,
|
||||
DEPT_NAME,
|
||||
NEW_CODE,
|
||||
AREA,
|
||||
H_LEVEL,
|
||||
REIMBURSE,
|
||||
REIMBURSE_TYPE,
|
||||
PRESCRIPTION_SOURCE,
|
||||
CORP_CODE,
|
||||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT,
|
||||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT
|
||||
FROM
|
||||
DM_TF_EXT_CHC_SALES;
|
||||
Reference in New Issue
Block a user