710 lines
18 KiB
SQL
710 lines
18 KiB
SQL
-- Databricks notebook source
|
||
-- CREATE OR REPLACE TABLE DM.DM_TF_EXT_AIA_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_aia_sales';
|
||
-- 上面是生产环境location,下面是测试环境location
|
||
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_tf_ext_aia_sales';
|
||
|
||
|
||
-- COMMAND ----------
|
||
|
||
-- MAGIC %run ../../../Common/config
|
||
|
||
-- COMMAND ----------
|
||
|
||
-- MAGIC %python
|
||
-- MAGIC spark.read.table(f'`{CDW_CATALOG}`.`dwd`.`dim_product_wide`').createOrReplaceTempView('cdw_dwd_dim_product_wide')
|
||
|
||
-- COMMAND ----------
|
||
|
||
-- 原始数据
|
||
-- 字段值的初步处理
|
||
CREATE OR REPLACE TEMPORARY VIEW AIA_RAWDATA
|
||
AS
|
||
SELECT
|
||
YEAR,
|
||
QTR,
|
||
CAST(YEAR * 100 + YM AS INT) YM,
|
||
ORG_PROV,
|
||
ORG_CITY,
|
||
INS_LEVEL,
|
||
CASE
|
||
WHEN
|
||
INS_CD IS NOT NULL
|
||
AND
|
||
LENGTH (INS_CD) < 7
|
||
THEN RIGHT (CONCAT ('0000000', INS_CD), 7)
|
||
ELSE INS_CD
|
||
END AS ORG_INS_CD,
|
||
ATC1,
|
||
ATC2,
|
||
ATC3,
|
||
ATC4,
|
||
ATC,
|
||
MOLE_NM,
|
||
PROD_NM,
|
||
ORG_PRD_NM_C,
|
||
ORG_PK,
|
||
ORG_PRD_STR,
|
||
ORG_PTH,
|
||
MIN_UNIT,
|
||
VALUE,
|
||
UNIT,
|
||
CAST(PACK_DESC AS INT) AS PACK_DESC,
|
||
ORG_PK_UN,
|
||
MANU
|
||
FROM
|
||
DWD.DWD_GND_AIA_RAWDATA
|
||
|
||
-- COMMAND ----------
|
||
|
||
--关联出AUDIT_COD、INST_CODE
|
||
CREATE OR REPLACE TEMPORARY VIEW AIA_RAWDATA_WITH_AUDIT_INST
|
||
AS
|
||
SELECT
|
||
UPPER(NVL (T2.INST_CODE, T1.ORG_INS_CD)) AS AUDIT_COD,
|
||
T1.YEAR,
|
||
T1.QTR,
|
||
T1.YM,
|
||
T1.ORG_PROV,
|
||
T1.ORG_CITY,
|
||
T1.INS_LEVEL,
|
||
T1.ORG_INS_CD,
|
||
T1.ATC1,
|
||
T1.ATC2,
|
||
T1.ATC3,
|
||
T1.ATC4,
|
||
T1.ATC,
|
||
T1.MOLE_NM,
|
||
T1.PROD_NM,
|
||
T1.ORG_PRD_NM_C,
|
||
T1.ORG_PK,
|
||
T1.ORG_PRD_STR,
|
||
T1.ORG_PTH,
|
||
T1.MIN_UNIT,
|
||
T1.VALUE,
|
||
T1.UNIT,
|
||
T1.PACK_DESC,
|
||
T1.ORG_PK_UN,
|
||
T1.MANU,
|
||
NVL (T2.INST_CODE, T1.ORG_INS_CD) AS INST_CODE
|
||
FROM
|
||
AIA_RAWDATA AS T1
|
||
LEFT JOIN
|
||
(
|
||
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
|
||
) AS T2
|
||
ON
|
||
T1.ORG_INS_CD = T2.CPA_HOSPITAL_CODE
|
||
|
||
-- COMMAND ----------
|
||
|
||
/*
|
||
修改人 CHENWU
|
||
修改时间 20250513
|
||
修改内容 打包分子的数据,不论 打通表 和 事实表,都没有系数,需要用 事实表里的 最小制剂单位数量 作为COUNTING_UNIT
|
||
*/
|
||
--关联出PACK_COD、CORP_COD、COUNTING_UNIT
|
||
CREATE OR REPLACE TEMPORARY VIEW AIA_RAWDATA_WIHT_COUNTING_UNIT
|
||
AS
|
||
SELECT
|
||
CASE
|
||
WHEN
|
||
LENGTH (TRIM(T2.IQVIA_PACK_CODE)) < 12
|
||
AND
|
||
TRIM(T2.IQVIA_PACK_CODE) REGEXP '^[0-9]'
|
||
THEN RIGHT (CONCAT ('000000000000', TRIM(T2.IQVIA_PACK_CODE)),12)
|
||
ELSE TRIM(T2.IQVIA_PACK_CODE)
|
||
END AS PACK_COD,
|
||
T3.CORP_COD,
|
||
CASE
|
||
WHEN LEFT (T2.IQVIA_PACK_CODE, 4) = 'AZP_'
|
||
THEN CAST(T1.MIN_UNIT / T1.ORG_PK_UN AS DECIMAL(38, 10))
|
||
ELSE T3.COUNTING_UNIT
|
||
END COUNTING_UNIT,
|
||
T1.AUDIT_COD,
|
||
T1.YEAR,
|
||
T1.QTR,
|
||
T1.YM,
|
||
T1.ORG_PROV,
|
||
T1.ORG_CITY,
|
||
T1.INS_LEVEL,
|
||
T1.ORG_INS_CD,
|
||
T1.ATC1,
|
||
T1.ATC2,
|
||
T1.ATC3,
|
||
T1.ATC4,
|
||
T1.ATC,
|
||
T1.MOLE_NM,
|
||
T1.PROD_NM,
|
||
T1.ORG_PRD_NM_C,
|
||
T1.ORG_PK,
|
||
T1.ORG_PRD_STR,
|
||
T1.ORG_PTH,
|
||
T1.MIN_UNIT,
|
||
T1.VALUE,
|
||
T1.UNIT,
|
||
T1.PACK_DESC,
|
||
T1.ORG_PK_UN,
|
||
T1.MANU,
|
||
T1.INST_CODE
|
||
FROM
|
||
AIA_RAWDATA_WITH_AUDIT_INST T1
|
||
LEFT JOIN
|
||
(
|
||
SELECT
|
||
DISTINCT
|
||
TRIM(IQVIA_PACK_CODE) AS IQVIA_PACK_CODE,
|
||
ATC1,
|
||
ATC2,
|
||
ATC3,
|
||
ATC4,
|
||
ORG_PRD_CD,
|
||
ORG_MOLE_NM_C,
|
||
ORG_MANU_PRD_NM_C,
|
||
ORG_PRD_NM_C,
|
||
ORG_PK,
|
||
ORG_PRD_STR,
|
||
ORG_PTH,
|
||
MIN_PK_UNIT,
|
||
ORG_PK_UNIT,
|
||
ORG_MANU_NM
|
||
FROM
|
||
DWD.DWD_GND_EXT_AIA_CPT_DATA
|
||
) AS T2
|
||
--ATC1编码+ATC2编码+ATC3编码+ATC4编码+药品编码(ATC)+药品通用名+药品产品名+药品商品名+规格+剂型+给药途径+最小销售包装单位+包装规格+生产企业
|
||
ON
|
||
NVL (T1.ATC1, '') = NVL (T2.ATC1, '')
|
||
AND NVL (T1.ATC2, '') = NVL (T2.ATC2, '')
|
||
AND NVL (T1.ATC3, '') = NVL (T2.ATC3, '')
|
||
AND NVL (T1.ATC4, '') = NVL (T2.ATC4, '')
|
||
AND NVL (T1.ATC, '') = NVL (T2.ORG_PRD_CD, '')
|
||
AND NVL (T1.MOLE_NM, '') = NVL (T2.ORG_MOLE_NM_C, '')
|
||
AND NVL (T1.PROD_NM, '') = NVL (T2.ORG_MANU_PRD_NM_C, '')
|
||
AND NVL (T1.ORG_PRD_NM_C, '') = NVL (T2.ORG_PRD_NM_C, '')
|
||
AND NVL (T1.ORG_PK, '') = NVL (T2.ORG_PK, '')
|
||
AND NVL (T1.ORG_PRD_STR, '') = NVL (T2.ORG_PRD_STR, '')
|
||
AND NVL (T1.ORG_PTH, '') = NVL (T2.ORG_PTH, '')
|
||
AND NVL (T1.UNIT, '') = NVL (T2.MIN_PK_UNIT, '')
|
||
AND NVL (T1.PACK_DESC, '') = NVL (T2.ORG_PK_UNIT, '')
|
||
AND NVL (T1.MANU, '') = NVL (T2.ORG_MANU_NM, '')
|
||
LEFT JOIN
|
||
(
|
||
SELECT
|
||
PACK_COD,
|
||
CORP_COD,
|
||
COUNTING_UNIT
|
||
FROM
|
||
DM.DM_AIA_PACK_PROPERTY
|
||
GROUP BY
|
||
PACK_COD,
|
||
CORP_COD,
|
||
COUNTING_UNIT
|
||
) T3 ON T2.IQVIA_PACK_CODE = T3.PACK_COD
|
||
|
||
-- COMMAND ----------
|
||
|
||
CREATE OR REPLACE TEMPORARY VIEW FILTER_YM
|
||
AS
|
||
SELECT
|
||
MAX(YM) AS MAX_YYYYMM,
|
||
CONCAT(CAST(FLOOR(MAX(YM)/100-2) AS STRING),'01') AS MIN_YYYYMM
|
||
FROM
|
||
AIA_RAWDATA_WIHT_COUNTING_UNIT
|
||
|
||
-- COMMAND ----------
|
||
|
||
--计算出LY销量
|
||
CREATE OR REPLACE TEMPORARY VIEW AIA_RAWDATA_FINAL AS
|
||
SELECT
|
||
YM,
|
||
ORG_INS_CD,
|
||
INST_CODE,
|
||
AUDIT_COD,
|
||
PACK_COD,
|
||
CORP_COD,
|
||
SUM(VALUE) AS VALUE,
|
||
SUM(VOLUME) AS VOLUME,
|
||
SUM(COUNTING_UNIT) AS COUNTING_UNIT,
|
||
SUM(VALUE_LY) AS VALUE_LY,
|
||
SUM(VOLUME_LY) AS VOLUME_LY,
|
||
SUM(COUNTING_UNIT_LY) AS COUNTING_UNIT_LY
|
||
FROM
|
||
(
|
||
SELECT
|
||
YM,
|
||
ORG_INS_CD,
|
||
INST_CODE,
|
||
AUDIT_COD,
|
||
PACK_COD,
|
||
CORP_COD,
|
||
CAST(VALUE AS DECIMAL(38, 10)) AS VALUE,
|
||
CAST(ORG_PK_UN AS DECIMAL(38, 10)) AS VOLUME,
|
||
CAST(ORG_PK_UN AS DECIMAL(38, 10)) * COALESCE(CAST(COUNTING_UNIT AS DECIMAL(38, 10)), 1) AS COUNTING_UNIT,
|
||
0 AS VALUE_LY,
|
||
0 AS VOLUME_LY,
|
||
0 AS COUNTING_UNIT_LY
|
||
FROM
|
||
AIA_RAWDATA_WIHT_COUNTING_UNIT
|
||
UNION ALL
|
||
SELECT
|
||
CAST(CAST(YM AS INT) + 100 AS STRING) AS YM,
|
||
ORG_INS_CD,
|
||
INST_CODE,
|
||
AUDIT_COD,
|
||
PACK_COD,
|
||
CORP_COD,
|
||
0 AS VALUE,
|
||
0 AS VOLUME,
|
||
0 AS COUNTING_UNIT,
|
||
CAST(VALUE AS DECIMAL(38, 10)) AS VALUE_LY,
|
||
CAST(ORG_PK_UN AS DECIMAL(38, 10)) AS VOLUME_LY,
|
||
CAST(ORG_PK_UN AS DECIMAL(38, 10)) * COALESCE(CAST(COUNTING_UNIT AS DECIMAL(38, 10)), 1) AS COUNTING_UNIT_LY
|
||
FROM
|
||
AIA_RAWDATA_WIHT_COUNTING_UNIT T1
|
||
JOIN
|
||
FILTER_YM T2
|
||
ON
|
||
1 = 1
|
||
WHERE
|
||
CAST(CAST(YM AS INT) + 100 AS STRING) <= T2.MAX_YYYYMM
|
||
)
|
||
GROUP BY
|
||
YM,
|
||
ORG_INS_CD,
|
||
INST_CODE,
|
||
AUDIT_COD,
|
||
PACK_COD,
|
||
CORP_COD
|
||
|
||
-- COMMAND ----------
|
||
|
||
CREATE OR REPLACE TEMPORARY VIEW FINAL_DM_TF_EXT_AIA_SALES
|
||
AS
|
||
SELECT
|
||
YM,
|
||
ORG_INS_CD,
|
||
INST_CODE,
|
||
AUDIT_COD,
|
||
PACK_COD,
|
||
CORP_COD,
|
||
SUM(VALUE) AS VALUE,
|
||
SUM(VOLUME) AS VOLUME,
|
||
SUM(COUNTING_UNIT) AS COUNTING_UNIT,
|
||
SUM(VALUE_LY) AS VALUE_LY,
|
||
SUM(VOLUME_LY) AS VOLUME_LY,
|
||
SUM(COUNTING_UNIT_LY) AS COUNTING_UNIT_LY
|
||
FROM
|
||
AIA_RAWDATA_FINAL
|
||
GROUP BY
|
||
YM,
|
||
ORG_INS_CD,
|
||
INST_CODE,
|
||
AUDIT_COD,
|
||
PACK_COD,
|
||
CORP_COD
|
||
|
||
-- COMMAND ----------
|
||
|
||
INSERT OVERWRITE TABLE DM.DM_TF_EXT_AIA_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
|
||
A.ym,
|
||
A.PACK_COD as PACK_CODE,
|
||
A.AUDIT_COD AS AUDIT_CODE,
|
||
'AIA(Monthly)' DATA_SOURCE,
|
||
-------------------------------------
|
||
sum(volume) as SALES_UNIT_CAL,
|
||
sum(volume_ly) as SALES_UNIT_CAL_LY,
|
||
sum(value) as SALES_VALUE_CAL,
|
||
sum(value_ly) as SALES_VALUE_CAL_LY,
|
||
sum(counting_unit) as CONUTING_UNIT,
|
||
sum(counting_unit_ly) as 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数据标签-------------------------
|
||
inst_code AS 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, --可以移除,报告没有使用
|
||
-------------------------------------
|
||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT,
|
||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT
|
||
FROM
|
||
FINAL_DM_TF_EXT_AIA_SALES A
|
||
WHERE
|
||
ym >= '202401'
|
||
GROUP BY
|
||
YM,
|
||
PACK_COD,
|
||
CORP_COD,
|
||
AUDIT_COD,
|
||
INST_CODE
|
||
|
||
-- COMMAND ----------
|
||
|
||
-- 20260109 dm.dm_ext_aia_sales 是老的表,现在已经用DM.DM_TF_EXT_AIA_SALES 替换,但是为了下游,老表暂时不下线,仍然写入
|
||
insert overwrite table dm.dm_ext_aia_sales (
|
||
ym,
|
||
org_ins_cd,
|
||
inst_code,
|
||
AUDIT_COD,
|
||
pack_cod,
|
||
corp_cod,
|
||
value,
|
||
volume,
|
||
counting_unit,
|
||
value_ly,
|
||
volume_ly,
|
||
counting_unit_ly
|
||
)
|
||
select
|
||
ym,
|
||
org_ins_cd,
|
||
inst_code,
|
||
AUDIT_COD,
|
||
pack_cod,
|
||
corp_cod,
|
||
sum(value) as value,
|
||
sum(volume) as volume,
|
||
sum(counting_unit) as counting_unit,
|
||
sum(value_ly) as value_ly,
|
||
sum(volume_ly) as volume_ly,
|
||
sum(counting_unit_ly) as counting_unit_ly
|
||
from
|
||
aia_rawdata_FINAL
|
||
CROSS JOIN
|
||
filter_ym
|
||
WHERE
|
||
YM BETWEEN filter_ym.min_yyyymm AND filter_ym.max_yyyymm
|
||
group by
|
||
ym,
|
||
org_ins_cd,
|
||
inst_code,
|
||
AUDIT_COD,
|
||
pack_cod,
|
||
corp_cod
|
||
|
||
-- COMMAND ----------
|
||
|
||
-- MAGIC %md
|
||
-- MAGIC 下面是重构验证,chenwu可删
|
||
|
||
-- COMMAND ----------
|
||
|
||
-- %sql
|
||
-- inst_code
|
||
-- ym
|
||
-- MARKET
|
||
|
||
-- COMMAND ----------
|
||
|
||
-- SELECT ym,AUDIT_COD,inst_code,SUM(value) value,SUM(volume) volume,SUM(counting_unit) counting_unit,SUM(value_ly) value_ly,SUM(volume_ly) volume_ly,SUM(counting_unit_ly) counting_unit_ly
|
||
-- FROM dm.dm_ext_aia_sales
|
||
-- GROUP BY ym,AUDIT_COD,inst_code
|
||
-- ORDER BY ym,AUDIT_COD,inst_code
|
||
|
||
-- COMMAND ----------
|
||
|
||
-- SELECT ym,AUDIT_COD,SUM(value) value,SUM(volume) volume,SUM(counting_unit) counting_unit,SUM(value_ly) value_ly,SUM(volume_ly) volume_ly,SUM(counting_unit_ly) counting_unit_ly
|
||
-- FROM dm.dm_ext_aia_sales
|
||
-- GROUP BY ym,AUDIT_COD
|
||
-- ORDER BY ym,AUDIT_COD
|
||
|
||
-- COMMAND ----------
|
||
|
||
|
||
-- SELECT
|
||
-- old.ym,
|
||
-- OLD.AUDIT_COD,
|
||
-- OLD.inst_code,
|
||
-- OLD.value,
|
||
-- NEW.value,
|
||
-- OLD.value-NEW.value as dif_value,
|
||
-- OLD.value_ly,
|
||
-- NEW.value_ly,
|
||
-- OLD.value_ly-NEW.value_ly as dif_value_ly,
|
||
-- OLD.volume,
|
||
-- NEW.volume,
|
||
-- OLD.volume-NEW.volume as dif_volume,
|
||
-- OLD.volume_ly,
|
||
-- NEW.volume_ly,
|
||
-- OLD.volume_ly-NEW.volume_ly as dif_volume_ly,
|
||
-- OLD.counting_unit,
|
||
-- NEW.counting_unit,
|
||
-- OLD.counting_unit-NEW.counting_unit as dif_counting_unit,
|
||
-- OLD.counting_unit_ly,
|
||
-- NEW.counting_unit_ly,
|
||
-- OLD.counting_unit_ly-NEW.counting_unit_ly as dif_counting_unit_ly
|
||
-- FROM
|
||
-- (
|
||
-- SELECT ym,AUDIT_COD,inst_code,SUM(value) value,SUM(volume) volume,SUM(counting_unit) counting_unit,SUM(value_ly) value_ly,SUM(volume_ly) volume_ly,SUM(counting_unit_ly) counting_unit_ly
|
||
-- FROM dm.dm_ext_aia_sales
|
||
-- GROUP BY ym,AUDIT_COD,inst_code
|
||
-- -- ORDER BY ym
|
||
-- ) AS OLD
|
||
-- LEFT JOIN
|
||
-- (
|
||
-- SELECT YYYYMM,AUDIT_CODE,inst_code,SUM(SALES_VALUE_CAL) value,SUM(SALES_UNIT_CAL) volume,SUM(CONUTING_UNIT) counting_unit,SUM(SALES_VALUE_CAL_LY) value_ly,SUM(SALES_UNIT_CAL_LY) volume_ly,SUM(CONUTING_UNIT_LY) counting_unit_ly
|
||
-- FROM DM.DM_TF_EXT_AIA_SALES
|
||
-- GROUP BY YYYYMM,AUDIT_CODE,inst_code
|
||
-- -- ORDER BY YYYYMM
|
||
-- ) AS NEW
|
||
-- ON OLD.YM =NEW.YYYYMM AND old.AUDIT_COD = NEW.AUDIT_CODE AND old.inst_code = new.inst_code
|
||
-- where
|
||
-- ABS(OLD.value - NEW.value) > 0.0000000001 OR
|
||
-- ABS(OLD.volume - NEW.volume) > 0.0000000001 OR
|
||
-- ABS(OLD.value_ly - NEW.value_ly) > 0.0000000001 OR
|
||
-- ABS(OLD.volume_ly - NEW.volume_ly) > 0.0000000001 OR
|
||
-- ABS(OLD.counting_unit - NEW.counting_unit) > 0.0000000001 OR
|
||
-- ABS(OLD.counting_unit_ly - NEW.counting_unit_ly) > 0.0000000001;
|
||
|
||
-- COMMAND ----------
|
||
|
||
|
||
-- SELECT
|
||
-- old.ym,
|
||
-- OLD.AUDIT_COD,
|
||
-- OLD.value,
|
||
-- NEW.value,
|
||
-- OLD.value-NEW.value as dif_value,
|
||
-- OLD.value_ly,
|
||
-- NEW.value_ly,
|
||
-- OLD.value_ly-NEW.value_ly as dif_value_ly,
|
||
-- OLD.volume,
|
||
-- NEW.volume,
|
||
-- OLD.volume-NEW.volume as dif_volume,
|
||
-- OLD.volume_ly,
|
||
-- NEW.volume_ly,
|
||
-- OLD.volume_ly-NEW.volume_ly as dif_volume_ly,
|
||
-- OLD.counting_unit,
|
||
-- NEW.counting_unit,
|
||
-- OLD.counting_unit-NEW.counting_unit as dif_counting_unit,
|
||
-- OLD.counting_unit_ly,
|
||
-- NEW.counting_unit_ly,
|
||
-- OLD.counting_unit_ly-NEW.counting_unit_ly as dif_counting_unit_ly
|
||
-- FROM
|
||
-- (
|
||
-- SELECT ym,AUDIT_COD,SUM(value) value,SUM(volume) volume,SUM(counting_unit) counting_unit,SUM(value_ly) value_ly,SUM(volume_ly) volume_ly,SUM(counting_unit_ly) counting_unit_ly
|
||
-- FROM dm.dm_ext_aia_sales
|
||
-- GROUP BY ym,AUDIT_COD
|
||
-- -- ORDER BY ym
|
||
-- ) AS OLD
|
||
-- LEFT JOIN
|
||
-- (
|
||
-- SELECT YYYYMM,AUDIT_CODE,SUM(SALES_VALUE_CAL) value,SUM(SALES_UNIT_CAL) volume,SUM(CONUTING_UNIT) counting_unit,SUM(SALES_VALUE_CAL_LY) value_ly,SUM(SALES_UNIT_CAL_LY) volume_ly,SUM(CONUTING_UNIT_LY) counting_unit_ly
|
||
-- FROM DM.DM_TF_EXT_AIA_SALES
|
||
-- GROUP BY YYYYMM,AUDIT_CODE
|
||
-- -- ORDER BY YYYYMM
|
||
-- ) AS NEW
|
||
-- ON OLD.YM =NEW.YYYYMM AND old.AUDIT_COD = NEW.AUDIT_CODE
|
||
-- where
|
||
-- ABS(OLD.value - NEW.value) > 0.0000000001 OR
|
||
-- ABS(OLD.volume - NEW.volume) > 0.0000000001 OR
|
||
-- ABS(OLD.value_ly - NEW.value_ly) > 0.0000000001 OR
|
||
-- ABS(OLD.volume_ly - NEW.volume_ly) > 0.0000000001 OR
|
||
-- ABS(OLD.counting_unit - NEW.counting_unit) > 0.0000000001 OR
|
||
-- ABS(OLD.counting_unit_ly - NEW.counting_unit_ly) > 0.0000000001;
|
||
|
||
-- COMMAND ----------
|
||
|
||
|
||
-- SELECT
|
||
-- old.ym,
|
||
-- OLD.value,
|
||
-- NEW.value,
|
||
-- OLD.value-NEW.value as dif_value,
|
||
-- OLD.value_ly,
|
||
-- NEW.value_ly,
|
||
-- OLD.value_ly-NEW.value_ly as dif_value_ly,
|
||
-- OLD.volume,
|
||
-- NEW.volume,
|
||
-- OLD.volume-NEW.volume as dif_volume,
|
||
-- OLD.volume_ly,
|
||
-- NEW.volume_ly,
|
||
-- OLD.volume_ly-NEW.volume_ly as dif_volume_ly,
|
||
-- OLD.counting_unit,
|
||
-- NEW.counting_unit,
|
||
-- OLD.counting_unit-NEW.counting_unit as dif_counting_unit,
|
||
-- OLD.counting_unit_ly,
|
||
-- NEW.counting_unit_ly,
|
||
-- OLD.counting_unit_ly-NEW.counting_unit_ly as dif_counting_unit_ly
|
||
-- FROM
|
||
-- (
|
||
-- SELECT ym,SUM(value) value,SUM(volume) volume,SUM(counting_unit) counting_unit,SUM(value_ly) value_ly,SUM(volume_ly) volume_ly,SUM(counting_unit_ly) counting_unit_ly
|
||
-- FROM dm.dm_ext_aia_sales
|
||
-- GROUP BY ym
|
||
-- ORDER BY ym
|
||
-- ) AS OLD
|
||
-- LEFT JOIN
|
||
-- (
|
||
-- SELECT YYYYMM,SUM(SALES_VALUE_CAL) value,SUM(SALES_UNIT_CAL) volume,SUM(CONUTING_UNIT) counting_unit,SUM(SALES_VALUE_CAL_LY) value_ly,SUM(SALES_UNIT_CAL_LY) volume_ly,SUM(CONUTING_UNIT_LY) counting_unit_ly
|
||
-- FROM DM.DM_TF_EXT_AIA_SALES
|
||
-- GROUP BY YYYYMM
|
||
-- ORDER BY YYYYMM
|
||
-- ) AS NEW
|
||
-- ON OLD.YM =NEW.YYYYMM
|
||
-- where
|
||
-- ABS(OLD.value - NEW.value) > 0.0000000001 OR
|
||
-- ABS(OLD.volume - NEW.volume) > 0.0000000001 OR
|
||
-- ABS(OLD.value_ly - NEW.value_ly) > 0.0000000001 OR
|
||
-- ABS(OLD.volume_ly - NEW.volume_ly) > 0.0000000001 OR
|
||
-- ABS(OLD.counting_unit - NEW.counting_unit) > 0.0000000001 OR
|
||
-- ABS(OLD.counting_unit_ly - NEW.counting_unit_ly) > 0.0000000001;
|
||
|
||
-- COMMAND ----------
|
||
|
||
-- -- 这个sql证明,两张表的inst_code,值也相同
|
||
-- SELECT
|
||
-- *
|
||
-- FROM
|
||
-- (
|
||
-- SELECT inst_code,COUNT(*) as c1 FROM DM.DM_TF_EXT_AIA_SALES
|
||
-- GROUP BY inst_code
|
||
-- ) AS NEW
|
||
-- FULL JOIN
|
||
-- (
|
||
-- SELECT inst_code,COUNT(*) as c1 FROM DM.dm_ext_aia_sales
|
||
-- GROUP BY inst_code
|
||
-- ) AS OLD
|
||
-- ON NEW.inst_code = old.inst_code
|
||
-- WHERE new.c1 != old.c1
|
||
|
||
-- COMMAND ----------
|
||
|
||
-- -- 这个sql证明,两张表的inst_code相同
|
||
-- SELECT
|
||
-- *
|
||
-- FROM
|
||
-- (
|
||
-- SELECT inst_code,COUNT(*) as c1 FROM DM.DM_TF_EXT_AIA_SALES
|
||
-- GROUP BY inst_code
|
||
-- ) AS NEW
|
||
-- FULL JOIN
|
||
-- (
|
||
-- SELECT inst_code,COUNT(*) as c1 FROM DM.DM_TF_EXT_AIA_SALES
|
||
-- GROUP BY inst_code
|
||
-- ) AS OLD
|
||
-- ON NEW.inst_code = old.inst_code
|
||
-- WHERE NEW.inst_code IS NULL OR old.inst_code IS NULL
|
||
|
||
-- COMMAND ----------
|
||
|
||
-- -- 这个sql证明,两张表的inst_code,值也相同
|
||
-- SELECT
|
||
-- *
|
||
-- FROM
|
||
-- (
|
||
-- SELECT inst_code,COUNT(*) as c1 FROM DM.DM_TF_EXT_AIA_SALES
|
||
-- GROUP BY inst_code
|
||
-- ) AS NEW
|
||
-- FULL JOIN
|
||
-- (
|
||
-- SELECT inst_code,COUNT(*) as c1 FROM DM.DM_TF_EXT_AIA_SALES
|
||
-- GROUP BY inst_code
|
||
-- ) AS OLD
|
||
-- ON NEW.inst_code = old.inst_code
|
||
-- WHERE new.c1 != old.c1
|
||
|
||
-- COMMAND ----------
|
||
|
||
-- SELECT COUNT(*) FROM DM.DM_TF_EXT_AIA_SALES
|
||
|
||
-- COMMAND ----------
|
||
|
||
-- SELECT COUNT(*) FROM DM.dm_ext_aia_sales |