58 lines
1.5 KiB
SQL
58 lines
1.5 KiB
SQL
-- Databricks notebook source
|
||
-- 源表:DWS.DWS_IMS_TD_DATE
|
||
-- 目标表:DM.DM_IMS_TD_CALENDAR,DM.DM_IMS_S_DATE
|
||
|
||
-- COMMAND ----------
|
||
|
||
--DM 逻辑
|
||
--DATE
|
||
INSERT OVERWRITE TABLE DM.DM_IMS_TD_CALENDAR
|
||
--当前年销量日期日历表缺少的用去年补全
|
||
SELECT
|
||
CAST(YM+100 AS INT) AS YYYYMM,
|
||
CAST(YEAR+1 AS INT) AS YEAR,
|
||
MONTH,
|
||
QUARTER,
|
||
CONCAT(CAST(LEFT(YQ,4) AS INT)+1,QUARTER) AS YQ ,
|
||
CAST(CONCAT(CAST(YEAR AS INT)+1,'-',MONTH,'-01') AS DATE) AS DAY_DATE,
|
||
CASE WHEN YM+100= (SELECT MAX(YM) FROM TMP.TMP_IMS_TF_FACT_SALES) THEN 'R' ELSE DATE_FLAG END,
|
||
CONCAT(CAST(LEFT(HALF_YEAR,4) AS INT)+1,RIGHT(HALF_YEAR,2)) AS HALF_YEAR,
|
||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') ETL_INSERT_DT,
|
||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') ETL_UPDATE_DT
|
||
FROM DWS.DWS_IMS_TD_DATE
|
||
WHERE YEAR+1=(SELECT MAX(YEAR) FROM DWS.DWS_IMS_TD_DATE)
|
||
|
||
--前四年的日历表
|
||
UNION ALL
|
||
|
||
SELECT
|
||
CAST(YM AS INT) AS YYYYMM,
|
||
CAST(YEAR AS INT),
|
||
MONTH,
|
||
QUARTER,
|
||
YQ,
|
||
CAST(CONCAT(YEAR,'-',MONTH,'-01') AS DATE) AS DAY_DATE,
|
||
DATE_FLAG,
|
||
HALF_YEAR,
|
||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') ETL_INSERT_DT,
|
||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') ETL_UPDATE_DT
|
||
FROM DWS.DWS_IMS_TD_DATE
|
||
WHERE YEAR<(SELECT MAX(YEAR) FROM DWS.DWS_IMS_TD_DATE)
|
||
AND YEAR+9>(SELECT MAX(YEAR) FROM DWS.DWS_IMS_TD_DATE)
|
||
|
||
|
||
-- COMMAND ----------
|
||
|
||
INSERT OVERWRITE TABLE DM.DM_IMS_S_DATE
|
||
SELECT
|
||
YYYYMM,
|
||
YEAR,
|
||
MONTH,
|
||
QUARTER,
|
||
YQ,
|
||
DAY_DATE,
|
||
DATE_FLAG,
|
||
HALF_YEAR,
|
||
ETL_INSERT_DT,
|
||
ETL_UPDATE_DT
|
||
FROM DM.DM_IMS_TD_CALENDAR |