update20260427

This commit is contained in:
2026-04-27 11:04:09 +08:00
commit 3e14e78af3
173 changed files with 62579 additions and 0 deletions

710
AIA/02 dm_ext_aia_sales.sql Normal file
View File

@@ -0,0 +1,710 @@
-- 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_CODINST_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_CODCORP_CODCOUNTING_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