将右外连接中的空值替换为先前非空匹配的行

Eli*_*ias 5 sql sql-server-2005

我有这个问题

select a.WeekNumber
        ,a.filedate
        ,a.customer
        ,material
        ,Quantity
from zfmon zf right outer join zfmonTemp a
on zf.customer = a.customer
        and zf.filedate = a.filedate
        and zf.material =  'AD215BY'
Run Code Online (Sandbox Code Playgroud)

它返回以下内容

WeekNumber FileDate                 Customer Material Quantity
1          2010-03-19 00:00:00.000  1008777  NULL     NULL
2          2010-03-12 00:00:00.000  1008777  AD215XX  3
Run Code Online (Sandbox Code Playgroud)

我想要的是当材料为null时用下一个非空值替换它.在这种情况下,它将用AD215XX替换它

因此输出看起来像

WeekNumber FileDate                 Customer Material Quantity
1          2010-03-19 00:00:00.000  1008777  AD215XX  NULL
2          2010-03-12 00:00:00.000  1008777  AD215XX  3
Run Code Online (Sandbox Code Playgroud)

这可能吗?请任何人帮忙.

谢谢,Eli

Cri*_*tiC 1

select a.WeekNumber
        ,a.filedate
        ,a.customer
        ,isnull(material, (select top 1 material from zfmonTemp where weeknumber > zf.weeknumber and material is not null order by weeknumber)) material
        ,Quantity
from zfmon zf right outer join zfmonTemp a
on zf.customer = a.customer
        and zf.filedate = a.filedate
        and zf.material =  'AD215BY'
Run Code Online (Sandbox Code Playgroud)