WITH RECURSIVE CalculatedDate AS
(
SELECT LowerBoundDate AS Date
FROM TempDateDimension
UNION ALL
SELECT (Date + INTERVAL '1 DAY')
FROM CalculatedDate
WHERE (Date + INTERVAL '1 DAY') <= UpperBoundDate
)
;
--insert each date to our temporay dimension table
, TempDateDimension AS
(
SELECT
Date AS Date_Key,
TO_VARCHAR(Date, 'Month DD, YYYY') AS Full_Date_Name,
MONTH(Date) AS Month_Id,
TO_VARCHAR(Date, 'Month YYYY') AS Month_Name,
DATE_PART('QUARTER', Date) AS Quarter_Id,
CONCAT('Quarter ', DATE_PART('QUARTER', Date), ' ', TO_VARCHAR(Date, 'YYYY')) AS Quarter_Name,
YEAR(Date) AS Year_Id,
TO_VARCHAR(Date, 'YYYY') AS Year_Name,
TO_VARCHAR(Date, 'DAYNAME') AS Day_Name,
DATE_PART('DOY', Date) AS Day_Of_Year,
CASE
WHEN TO_VARCHAR(Date, 'DAYNAME') = 'Sunday' THEN 0
WHEN TO_VARCHAR(Date, 'DAYNAME') = 'Saturday' THEN 0
ELSE 1
END AS WorkDay
FROM CalculatedDate
);
期待工作,但一直给我一个“;”错误
我不熟悉“snowflake”,但如果错误是使用 cte 的分号,请尝试将分号放在保留字“WITH”之前,分号将用于指定您的 cte 表达式从那里开始
;WITH RECURSIVE CalculatedDate AS ...