我已经在这方面工作了一段时间,我想得到一些帮助。
我的数据库是SQL Server 2008 R2(我知道,很老)。
我基本上有一个事务表,按工作每周捕获值。
我想重复作业的最后一个值,直到找到下一个值。
我已经从我的表中包含了一些数据。最后一列(需要的值)是我想要实现的目标。
非常感谢。
布鲁斯
我已尝试过下面的SQL,但它没有提供正确的值。请参阅附件。
SQL
select t.*, t2.percentcomp as value_needed
来自#1 t
outer apply
(select top 1 t2.*
from #1 t2
where t2.job_skey = t.job_skey and
t2.COST_CODE_SKEY=t2.COST_CODE_SKEY and
t2.period_end_date <= t.period_end_date and
t2.percentcomp is not null
order by t.JOB_SKEY,t.phase,t.period_end_date desc
) t2
答案 0 :(得分:0)
您可以使用OUTER APPLY
:
select t.*, t2.percent_comp as value_needed
from t outer apply
(select top 1 t2.*
from t t2
where t2.job_skey = t.job_skey and
t2.period_end_date_id <= t.period_end_date_id and
t2.percentcomp is not null
order by t2.period_start_date desc
) t2;