当未对WHERE子句中的值进行硬编码时,查看最近5天未返回数据

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

这是一个简化的版本,但我试图创建一个视图以返回最近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 ...

sql oracle
2个回答
0
投票

您的意思是“在外部查询中分配参数”?那没有道理。如果要将此作为“参数”,则可以使用cross join


0
投票

您的视图(问题中的内部查询)不应具有任何日期条件。所有条件都必须在外部WHERE子句中。

© www.soinside.com 2019 - 2024. All rights reserved.