新列,其中包含另外两列的值

时间:2015-09-08 09:26:08

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

列d是预期输出

a                  b             c             d 
2009-04-01        0.42         null           null 
2009-04-02        0.3          null           null 
.
.
2010-03-16        1.2         2009-04-01       1.2 - 0.42 
2010-03-17        0.7         2009-04-02       0.7 - 0.3

列d的值应计算为: 对于每一行,查看列a中的日期,然后从列b中取出值并减去b中对应的值 对于c栏中的日期。

我的桌子有一个b c

从mytable中选择a,b,c  我应该自我加入吗?

something like

select 
 t1.a
,t1.b
,t1.c
,t2.b -t1.b as d 
into #myTemptable
from (
select
 a 
,b
,c 
from mytable 
)
join (
select 
 a
,b
,c 
from #myTemptable
)
on -- i am not sure how to join them here, ideas?

对不起标题,我不知道哪个适合这里。任何解决方案都将非常感谢。

1 个答案:

答案 0 :(得分:1)

试;

select
    t.a, t.b, t.c, 
    case when t1.b is null then null
    else t.b - t1.b  end as d
from mytable t
left join mytable t1 on t.c = t1.a