【发布时间】:2021-07-30 03:40:15
【问题描述】:
目标:从具有可变结束日期的表中提取过去 30 天的数据
背景:我有一个包含购买信息的表格,但该表格仅每两周更新一次,因此数据存在滞后。某天可能会落后 14 天,而其他天可能会落后 13 或 15 天。
我的表包含一个 DATE_KEY 列,该列连接到该键上的 DATE_DIM 表,这是我从中提取日期字段的位置。我会使用 GETDATE 或 CURRENT_DATE 但由于滞后,这在我的情况下不合适。
我正在使用 Sybase IQ,并且我认为我不能在 where 子句中使用 select 语句来比较日期,我收到以下错误:
Feature, scalar value subquery (at line 63) outside of a top level SELECT list, is not supported.
这就是我想要做的
WHERE
TIME.[DAY] >= DATEADD(dd,-30,( SELECT
MAX([TIME1].[DAY])
FROM DB.DATE_DIM TIME1
JOIN DB.PURCHASES PURC
ON TIME1.KEY = PURC.KEY))
鉴于上述限制,我如何提取最近 30 天的数据?
【问题讨论】:
-
为什么你的代码不起作用?
-
查看更多查询可能会有所帮助。从我在这里看到的情况来看,我的直觉告诉我,“JOIN”比“WHERE”更合适(是的......除了所有等价物)。