TSQL在外连接上重复值

时间:2017-01-29 17:54:21

标签: sql tsql sql-server-2008-r2

我已经在这方面工作了一段时间,我想得到一些帮助。

我的数据库是SQL Server 2008 R2(我知道,很老)。

我基本上有一个事务表,按工作每周捕获值。

我想重复作业的最后一个值,直到找到下一个值。

我已经从我的表中包含了一些数据。最后一列(需要的值)是我想要实现的目标。

非常感谢。

布鲁斯

image of data

我已尝试过下面的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

附件.. view of SQL. Value_needed should begin with 5

1 个答案:

答案 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;

enter image description here