a表select进b表,同时进行简单运算的绕头问题

acneyouth 2010-06-21 01:31:39
a表字段大致如下
id:唯一的索引id
value1:某整型数
value2:另一整型数

b表只有id、value这两个字段

现在要把数据写入b表,b.id=a.id,这个好说;另外b.value = (a.value1 + a.value2)/(之前一个a.value1),也就是说我想把下面两个语句用一个语句搞定:
select id , value1 + value2 into b from a ;
update b set b.value = b.value / (select value1 from a where a.id = b.id - 1) ;

不知道上面两句有没有问题,总之是这么个意思……有五六年没写sql了,请大家帮帮忙!多谢!

...全文
113 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
acneyouth 2010-06-24
  • 打赏
  • 举报
回复
谢谢大家,htl258很细心啊
brownhwy 2010-06-21
  • 打赏
  • 举报
回复
b表如果已经存在的话,Select into b是不正确的。
htl258_Tony 2010-06-21
  • 打赏
  • 举报
回复
;WITH t AS 
(
SELECT rn = ROW_NUMBER()OVER(ORDER BY id), *
FROM a
)
SELECT a.id, (ISNULL(a.value1, 0)+ISNULL(a.value2, 0))/NULLIF(b.value1, 0) AS value
INTO b
FROM t a
LEFT JOIN t b
ON a.rn = b.rn+1

SQL2005及以上版本运行,考虑ID断号,考虑 0 值与NULL值.
永生天地 2010-06-21
  • 打赏
  • 举报
回复

select id , (value1 + value2)/(select value1 from a where id = t.id - 1)
into b
from a t;

34,838

社区成员

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

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