最近的日期值

Nearest date value

我需要一个解决方案来根据 date.Suppose 找到缺失值的最近日期值我有一个临时的 table,如下所示,其中包含 Product Date Value

Product      Date     Value  
  P1         1/10      10  
  P1         2/10      20  
  P1         3/10          
  P1         4/10   

在这里您发现日期 3/10 和 4/10 没有值,它应该从最近的日期 2/10 复制值到 3/10 和 4/10,即 20。 我在 HANA 中使用了滞后函数,它只复制 3/10 的值,而对于日期 4/10,它是空的。 HANA 中是否有任何函数可以从最近的日期值中获取值,例如重复 LAG。

我不想做游标,据我所知 SQL 脚本不支持 CTE

BR 阿尔沙德

能否请您检查以下 SQLSAP HANA 数据库的脚本语句

select
    Product, Date, Value
from (
select 
    pv.Product,
    pv.Date,
    ifnull(pv.Value, p.Value) as Value,
    row_number() over (partition by pv.Product, pv.Date order by p.Date desc) as rn
from ProductValue pv
left join ProductValue p
    on 
    pv.Value is null and
    p.Product = pv.Product and
    p.Date < pv.Date and
    p.Value is not null
) t
where rn = 1
order by
    Product,
    Date

我在 WHERE 子句

中结合使用了自连接和 ROW_NUMBER() 函数

上述SAP HANA SQL脚本的输出如下