如何动态更改sql查询以添加周数?

如何动态更改sql查询以添加周数?,sql,amazon-redshift,Sql,Amazon Redshift,我有一个sql查询,其中我需要在我的in子句中提供后面的六周数。为了简单起见,我删除了查询中的其他细节。正如您在下面看到的,到目前为止,所有内容都是硬编码的。每周我都会在下面的查询中更改,添加新的周数,删除最旧的周数,以保持后面的6周 AND data.process_holder IN ('21', '22', '23', '24', '25', '26') 我怎样才能使这个查询以这样一种方式变得动态,这样它就可以通过保持尾随六周来自动为我更改周数。例如:对于本周,无论何时运行它,都应该使用

我有一个sql查询,其中我需要在我的
in
子句中提供后面的六周数。为了简单起见,我删除了查询中的其他细节。正如您在下面看到的,到目前为止,所有内容都是硬编码的。每周我都会在下面的查询中更改,添加新的周数,删除最旧的周数,以保持后面的6周

AND data.process_holder IN ('21', '22', '23', '24', '25', '26')
我怎样才能使这个查询以这样一种方式变得动态,这样它就可以通过保持尾随六周来自动为我更改周数。例如:对于本周,无论何时运行它,都应该使用此选项。同样,每周也应该如此

AND data.process_holder IN ('22', '23', '24', '25', '26', '27')

这可能吗?我使用的是AWS红移数据库。

您可以尝试将
process\u holder
中的周数与当前日期的周数进行比较:

SELECT *
FROM yourTable
WHERE ... AND
    process_holder::integer BETWEEN DATE_PART(w, CURRENT_DATE) - 5 AND
                                    DATE_PART(w, CURRENT_DATE);

啊,我们可以这样写吗?嗯,那很有趣。我不知道。今天学到了一些新东西。有关于如何在sql中使用
的文档吗?@AndyP你也可以使用
CAST(process\u holder作为整数)
,但是如果
process\u holder
实际上已经是数字,你甚至不需要这个CAST。嗨,蒂姆,你认为你也可以帮忙吗。这和这个问题差不多。