一个奇怪的更新问题

q465897859 2012-04-17 10:03:18

SELECT '0001' ID ,100 FSUM INTO #TB
SELECT '0001' ID ,100 FM1,O FM2 INTO #T
UNION ALL
SELECT '0001' ID ,0 FM1,100 FM2

SELECT A.ID,A.FSUM,B.FM1,B.FM2 FROM #TB A,#T B WHERE A.ID=B.ID

UPDATE #TB SET FSUM=A.FSUM+B.FM1-B.FM2 FROM #TB A,#T B WHERE A.ID=B.ID


上述代码 更新只更新了#T 的第一条 而第二条却更新不到
求解
...全文
77 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

引用 4 楼 的回复:
引用楼主 的回复:
SQL code


你的表明都写错了吧???你那哪是更新#T,明明是更新的#TB表

没错 更新只把#t的第一条记录更新到#tb表
[/Quote]

更新#T表的那一个字段,#T表无FSUM字段

FSUM=A.FSUM+B.FM1-B.FM2
q465897859 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
引用楼主 的回复:
SQL code


你的表明都写错了吧???你那哪是更新#T,明明是更新的#TB表
[/Quote]
没错 更新只把#t的第一条记录更新到#tb表

  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
SQL code

SELECT '0001' ID ,100 FSUM INTO #TB
SELECT '0001' ID ,100 FM1,O FM2 INTO #T
UNION ALL
SELECT '0001' ID ,0 FM1,100 FM2

SELECT A.ID,A.FSUM,B.FM1,B.FM2 FROM #TB A,#T B WHERE A.ID=B.ID

UPDAT……
[/Quote]

你的表明都写错了吧???你那哪是更新#T,明明是更新的#TB表
中国风 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
SQL code

SELECT '0001' ID ,100 FSUM INTO #TB
SELECT '0001' ID ,100 FM1,O FM2 INTO #T
UNION ALL
SELECT '0001' ID ,0 FM1,100 FM2

SELECT A.ID,A.FSUM,B.FM1,B.FM2 FROM #TB A,#T B WHERE A.ID=B.ID

UPDAT……
[/Quote]

更新的表为#TB,#TB只有一条记录,当然只会更新一条
q465897859 2012-04-17
  • 打赏
  • 举报
回复
个人想到个方法 先对#t表进行分组求和 在关联
有没有大牛有更好的方法 或是直接关联就可以更新
q465897859 2012-04-17
  • 打赏
  • 举报
回复
这么晚了 还有大牛在么 sf

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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