【发布时间】:2023-03-14 02:17:01
【问题描述】:
有一个财政季度列,我想在同一行中添加一个显示上一季度的列。我已经在画面中成功地做到了这一点,逻辑如下。
IF RIGHT([current_qtr], 1) = "1"
THEN LEFT([current_qtr],2)+ STR(INT(MID([current_qtr], 3,2)) -1) +"Q4"
ELSE LEFT([current_qtr],5)+ STR(INT(RIGHT([current_qtr],1)) -1)
END
雪花中的预期输出示例
| current_qtr | previous_qtr | other columns |
|---|---|---|
| FY21Q1 | FY20Q4 | etc |
| FY21Q2 | FY21Q1 | etc |
当我尝试在雪花中执行此操作时,虽然我不断收到此“数值 '' 无法识别错误。任何想法如何解决?以下是我尝试的。
SELECT *,
CASE
WHEN SUBSTR(p.current_qtr,5,1) = 1
THEN SUBSTR(p.current_qtr,1,2) || TRY_CAST(SUBSTR(p.current_qtr,3,2) as INTEGER)-1 || 'Q4'
ELSE SUBSTR(p.current_qtr,5,1) || TRY_CAST(SUBSTR(p.current_qtr,3,2) as INTEGER)-1
End As prev_qtr
FROM table as p
【问题讨论】:
标签: sql snowflake-cloud-data-platform