表A
id start end TypeA TypeB
1 A B 2 3
2 B C 4 5
3 X Y 6 8
4 M N 12 9
..表B
id start end Type STime
1 A B A
2 X Y B
...
现在要用表A的数据更新表B,得到以下结果:
id start end Type STime
1 A B A 2
2 X Y B 8
...
怎样做?谢谢!
id start end TypeA TypeB
1 A B 2 3
2 B C 4 5
3 X Y 6 8
4 M N 12 9
..表B
id start end Type STime
1 A B A
2 X Y B
...
现在要用表A的数据更新表B,得到以下结果:
id start end Type STime
1 A B A 2
2 X Y B 8
...
怎样做?谢谢!
B Inner Join A
On A.start=B.start And A.[end]=B.[end]
set STime=case b.type when 'A' then a.TypeA
when 'B' then a.TypeB
else b.STime
end
from a,b
where a.[start]=b.[start]
and a.[end]=b.[end]
SET Stime=CASE b.Type WHEN 'A' Then a.TypeA ELSE a.TypeB END
FROM 表B b
INNER JOIN 表A a
ON a.start=b.start AND [a.end]=[b.end]随意手写,未经测试
有表A:
id ETime ATime TimeSpan
1 0100 0200 5
2 0212 NULL 6
3 0200 NULL 8
...
要得到以下的数据:
id ETime ATime TimeSpan ET AT
1 0100 0200 5 0105 0205
2 0212 0212 6 0218 0218
3 0200 0208 8 0208 0208
就是说:如果ATime有值,则取ATime的值,否则就取ETime的值,然后与TimeSpan相加.
我写了一条语句,
select id,ETime,case when ATime is null then ETime else ATime as ATime,Et=ETime+TimeSpan,AT=ATime+TimeSpan
却得不到想要的结果,请问如何做?
SET Atime=ISNULL(Atime,Etime+TimeSpan)
SELECT也一样。SELECT id,Etime,ISNULL(Atime,Etime+TimeSpan) Atime,TimeSpan,ET=Etime+TimeSpan,AT=ISNULL(Atime,Etime+TimeSpan)+TimeSpan FROM A
case when atime is not null then atime+spantime else etime+spantime end as at
from tablename