Teradata 选择日期 = 上一个工作日/工作日的位置



Using Teradata 15.1x

我正在尝试选择前一个工作日的数据。我可以得到前一天使用

cast(cast(cast(a.date_dim_ck as varchar(13)) as date format 'yyyymmdd') as date format 'mm-dd-yyyy') = current_date - 1

但是当我尝试在星期一回顾 3 天而不是 1 天(要获取星期五的数据,请参见下文(时,我得到"[3707] 语法错误,预期类似于'('和'='之间的'END'关键字。

where case 
when td_day_of_week(current_date)<>2 
then
cast(cast(cast(a.date_dim_ck as varchar(13)) as date format 'yyyymmdd') as date format 'mm-dd-yyyy') = current_date - 1
else
cast(cast(cast(a.date_dim_ck as varchar(13)) as date format 'yyyymmdd') as date format 'mm-dd-yyyy') = current_date - 3

我做错了什么?

您只能使用 case 语句根据另一个条件确定字段的值。 请参阅下面的语法。

where cast(cast(cast(a.date_dim_ck as varchar(13)) as date format 'yyyymmdd') as date format 'mm-dd-yyyy') = case  
when td_day_of_week(current_date)<>2 
then
current_date - 1
else
current_date - 3
end 

最新更新