有关给定日期的sql查询,如果不存在,请提供最新日期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有关给定日期的sql查询,如果不存在,请提供最新日期相关的知识,希望对你有一定的参考价值。

我有这张桌子。

InformationValues(attr,dateOfValue,price)

表内容:

enter image description here

如果不存在,我需要选择所有具有相同日期的属性,应该选择最新日期。

例如TO_DATE('01-jan-19')

解决方案表应如下所示:

enter image description here

到目前为止,我的SQL查询:

select iv.attr , price, dateofvalue from informationvalues iv where
 dateofvalue = (select max(dateofvalue) from informationvalues where attr = iv.attr) or
 dateofvalue = TO_DATE('01-jan-19');

我想念什么?

答案

我对这个问题感到困惑

如果您的意思是,所选数据被划掉,试试这个:

Select  a.attr, Min(dateofvalue) dateofvalue_MIN, Max(dateofvalue) dateofvalue_MAX, price
From #TableName a
Inner Join (
    Select attr
    From #TableName
    Group By attr
    Having Count(1) > 1
    ) b On b.attr = a.attr
Group By a.attr, price

如果您的意思是,所选数据不会被删除,试试这个:

Select  a.attr, Min(dateofvalue) dateofvalue_MIN, Max(dateofvalue) dateofvalue_MAX, price
From #TableName a
Group By a.attr, price

Thx

另一答案

具有row_number()分析功能:

row_number()

以上是关于有关给定日期的sql查询,如果不存在,请提供最新日期的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL 中为给定年份设置硬编码的日期和月份

SQL查询获取特定日期和列中最新日期之间的数据

使用SQL查询物料最新采购价格的示例

当不存在当前日期值时,SQL Server 查询以结转前一天的值

SQL查询以逐块获取最新数据

Sql查询以查找两个给定日期之间的视图百分比差异