UPDATE 里用 SUM 的问题,速度来。结帖~

YSEE 2009-01-07 10:56:53
错的.

UPDATE [User]
SET LDATE = GETDATE(), LSUM = SUM(LSUM + 1) //如何实现?
WHERE (NAME = 'aaa')

那位指点哈 我用FROM老错
...全文
130 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
luoxi1124 2009-01-07
  • 打赏
  • 举报
回复
SUM
返回表达式中所有值的和,或只返回 DISTINCT 值。SUM 只能用于数字列。空值将被忽略。

语法
SUM ( [ ALL | DISTINCT ] expression )

SUM 只能用于数字列,检查下你针对的列是不是数字列。
你的SUM用法也错了,要求一列,只能用SUM(LSUM )而不是SUM(LSUM + 1),要递归相加,只能LSUM = LSUM + 1
YSEE 2009-01-07
  • 打赏
  • 举报
回复
我晕 呵呵. 2楼的我怎么没这么用.
高手啊.
水族杰纶 2009-01-07
  • 打赏
  • 举报
回复
UPDATE [User] 
SET LDATE = GETDATE(), LSUM = T.LSUM + 1
FROM (SELECT SUM(LSUM)LSNUM FROM [User] )T
WHERE ([User].NAME = 'aaa')
viva369 2009-01-07
  • 打赏
  • 举报
回复
update user
SET LDATE = GETDATE(), LSUM = (select sum(lsum+1) lsum from user where name = 'aaa')

水族杰纶 2009-01-07
  • 打赏
  • 举报
回复
UPDATE [User] 
SET LDATE = GETDATE(), LSUM = LSUM + 1-- //如何实现?
WHERE (NAME = 'aaa')

22,206

社区成员

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

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