这是一个简化的版本,但我试图创建一个视图以返回最近5天(包括今天)的数据:
select distinct data_dt
from(
select *
from table1 t
WHERE t.data_dt BETWEEN specified_dt - 4 and specified_dt
)
where specified_dt = date'2019-05-01';
此操作仅返回当天的数据。
[当我在WHERE子句中输入硬编码日期时(如下所示),我将返回正确的数据集。但是,当我使用在外部查询中为其分配值的参数切换硬编码日期时(如上面的查询中所示),它仅在where子句中返回指定的日期(而不是过去4天)。] >
select distinct data_dt from table1 t WHERE t.data_dt BETWEEN date'2019-05-01'- 4 and date'2019-05-01';
我忘了什么吗?
提前感谢。
这是简化版本,但是我试图创建一个视图以返回最近5天(包括今天)的数据:选择与众不同的data_dt from(select from from table1 t ...
您的意思是“在外部查询中分配参数”?那没有道理。如果要将此作为“参数”,则可以使用cross join
:
您的视图(问题中的内部查询)不应具有任何日期条件。所有条件都必须在外部WHERE
子句中。