在SQL中滚动12个月的过滤条件

问题描述 投票:0回答:2

在SQL脚本中遇到了一个问题,我试图在服务器中以文本形式存储数据的day列中实现滚动12个月的过滤条件。

目标是计算过去12个月内从当前日期开始的零售店位置的产品尺寸。目前,在我的查询中,我使用的是2019年的标准,它只计算该年的尺寸,但不计算从当前日期开始滚动12个月的尺寸。

CALENDARDAY列在数据集中的文本字段中,数据存储为yyyymmdd格式。

当试图在Tableau中使用GETDATE和DATEADD函数运行下面的脚本时,它给我一个功能错误。我正试图用下面的查询访问SAP HANA服务器。

任何帮助将被感激

Select

SKU, STYLE_ID, Base_Style_ID, COLOR, SIZEKEY, STORE, Year,
count(SIZEKEY)over(partition by STYLE_ID,COLOR,STORE,Year) as SZ_CNT

from 
(
select 
a."RAW" As SKU,
a."STYLENUM" As STYLE_ID,
mat."BASENUM" AS Base_Style_ID, 
a."COLORNUM" AS COLOR,
a."SIZE" AS SIZEKEY,
a."STORENUM" AS STORE,
substring(a."CALENDARDAY",1,4) As year

from PRTRPT_XRE as a
JOIN ZAT_SKU As mat On a."RAW" = mat."SKU"

where a."ORGANIZATION" = 'M20'
and a."COLORNUM" is not null
and substring(a."CALENDARDAY",1,4) = '2019'

Group BY
a."RAW",
a."STYLENUM",
mat."BASENUM", 
a."ZCOLORCD",
a."SIZE",
a."STORENUM",
substring(a."CALENDARDAY",1,4)
)
sql dataset filtering tableau hana
2个回答
1
投票

我从来没有在该DB服务器上工作,所以我没有办法测试这个。但是,希望这将工作(期待准确的12个月之前,今天的日期)。

AND ADD_MONTHS (TO_DATE (a."CALENDARDAY", 'YYYY-MM-DD'), 12) > CURRENT_DATE

AND ADD_MONTHS (a."CALENDARDAY", 12) > CURRENT_DATE

0
投票

下面是我们的一个CALENDAR表的条件,其工作方式也与上述回答中提到的ADD_MONTHS相同。

select distinct CALENDARDAY
from
(
select FISCALWEEK, CALENDARDAY, CNST, row_number()over(partition by CNST order by FISCALWEEK desc) as rnum
from
(
select distinct FISCALWEEK, CALENDARDAY, 'A' as CNST
from CALENDARTABLE
where CALENDARDAY < current_date
order by 1,2
)
) where rnum < 366
© www.soinside.com 2019 - 2024. All rights reserved.