【发布时间】:2020-02-15 08:09:44
【问题描述】:
我的 Oracle 表中有这些数据:
在此表中,我有多个产品,在特定时间具有 product_id 和价格。
我想编写一个 SQL 查询,根据TIME 列(Oracle - Long 类型)获取每种产品的最新价格。
但问题出在这里,因为我们对产品的表价监控从前一天的 23:00 开始。
需要输出:当我将 2019 年 12 月 2 日作为参数传递给 SQL 查询时
如何使用 SQL 查询来做到这一点?还是我需要为它写一个存储过程,基于 if 和 else 条件?
提前致谢。
【问题讨论】:
-
But here is the problem... 您似乎在 12 月 19 日晚上 11 点前后都获得了结果。请解释你的逻辑。 -
@Tim 日期不是 12 月 19 日,而是 2019 年
-
抱歉,现在是 2019 年 12 月 2 日,但我的问题仍然存在。
-
@Tim 让我解释一下逻辑:我想要每个产品的最新价格。现在我将在我的查询中传递日期作为参数。但是,我需要考虑时间超过 230000(hhmmss) 和上一个日期的所有行。你可以看到我展示的输出。对于产品 ID 13520,时间是 231150,local_date 是 1-Dec 。因此,当我在 sql 查询中将 2-Dec 作为参数传递时,您可以看到 13520 id 没有其他行,我想将该行视为 230000 之后的最新行。
-
以防万一,如果不清楚,我会用更多的数据来解释..