遇到难题了,兄弟们帮忙一下,谢谢

cyu388 2012-09-21 01:05:49
update MEMB_INFO set QXENDTIME=dateadd(day,30,(select QXENDTIME from MEMB_INFO where QX='C')) where QX='C'


错误提示:
子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
语句已终止。


有没有什么办法解决这个问题?
...全文
68 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyu388 2012-09-21
  • 打赏
  • 举报
回复
4楼和5楼的回复时间差不多,所以两个人各给20分,再次谢谢。
cyu388 2012-09-21
  • 打赏
  • 举报
回复
DBA_Huangzj
也谢谢你,谢谢每个回答的朋友,CSDN真是好地方。
cyu388 2012-09-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

看你的语句不就更新记录,直接加30天吗
那这样写不就行了吗

update MEMB_INFO set QXENDTIME=dateadd(day,30,QXENDTIME) where QX='C'
[/Quote]


谢谢兄弟,我是新手而且比较笨。真的太谢谢你了,帮我解决了问题。
GorillazForthgoer 2012-09-21
  • 打赏
  • 举报
回复
看你的语句不就更新记录,直接加30天吗
那这样写不就行了吗

update MEMB_INFO set QXENDTIME=dateadd(day,30,QXENDTIME) where QX='C'
發糞塗牆 2012-09-21
  • 打赏
  • 举报
回复
UPDATE  MEMB_INFO
SET QXENDTIME = DATEADD(day, 30, ( QXENDTIME ))
WHERE QX = 'C'
你的语句太臃肿了
cyu388 2012-09-21
  • 打赏
  • 举报
回复
这样的话数据库有很多条记录,总不能一个一个执行吧
發糞塗牆 2012-09-21
  • 打赏
  • 举报
回复
dateadd(day,30,(select QXENDTIME from MEMB_INFO where QX='C')这句里面你返回的是多个QXENDTIME ,试一下top1或者where语句中多加点条件使其能筛选剩下一条
xuam 2012-09-21
  • 打赏
  • 举报
回复
update MEMB_INFO set QXENDTIME=dateadd(day,30,(select top 1 QXENDTIME from MEMB_INFO where QX='C')) where QX='C'

34,590

社区成员

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

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