求一更新语句?

zsanhong 2006-06-30 10:03:59
表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
...
怎样做?谢谢!

...全文
151 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
fcuandy 2006-06-30
  • 打赏
  • 举报
回复
UPDATE 表B
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]

随意手写,未经测试
昵称被占用了 2006-06-30
  • 打赏
  • 举报
回复
update b
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]
zsanhong 2006-06-30
  • 打赏
  • 举报
回复
顶!
paoluo 2006-06-30
  • 打赏
  • 举报
回复
Update B Set STime=(Case Type When 'A' Then A.TypeA When 'B' Then A.TypeB End) From
B Inner Join A
On A.start=B.start And A.[end]=B.[end]
acnode 2006-06-30
  • 打赏
  • 举报
回复
select etime,atime,spantime,etime+spantime as et,
case when atime is not null then atime+spantime else etime+spantime end as at
from tablename
zsanhong 2006-06-30
  • 打赏
  • 举报
回复
谢谢各位!
fcuandy 2006-06-30
  • 打赏
  • 举报
回复
我以为你要UPDATE,才这么写的。
SELECT也一样。

SELECT id,Etime,ISNULL(Atime,Etime+TimeSpan) Atime,TimeSpan,ET=Etime+TimeSpan,AT=ISNULL(Atime,Etime+TimeSpan)+TimeSpan FROM A
zsanhong 2006-06-30
  • 打赏
  • 举报
回复
你是说要先更新表A再执行选择语句吗?
fcuandy 2006-06-30
  • 打赏
  • 举报
回复
UPDATE A
SET Atime=ISNULL(Atime,Etime+TimeSpan)
zsanhong 2006-06-30
  • 打赏
  • 举报
回复
顶!
zsanhong 2006-06-30
  • 打赏
  • 举报
回复
谢谢各位,还有一小问题,一并请教.
有表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
却得不到想要的结果,请问如何做?

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧