子查询返回的值不止一个

Lit_chi 2018-01-22 07:37:05
我的sql语句是这样的 select price*convert(int,day(GETDATE()-(select v_landlord.date_start from v_landlord))) as 该住户需要缴清的金额为 from t_room where @roomid=t_room.roomid 消息 512,级别 16,状态 1,过程 退房By_房东视图,第 7 行
子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。分析的时候没问题,执行的时候就会报错 请问这是怎么回事 该怎么改
...全文
1610 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2018-01-23
  • 打赏
  • 举报
回复
在SELECT的子查询只能为一条记录,这位置用TOP 1或MAX/MIN,结果集有>=2记录会出错 (SELECT TOP 1 v_landlord.date_start FROM v_landlord)
卖水果的net 2018-01-22
  • 打赏
  • 举报
回复
select v_landlord.date_start from v_landlord 这个子查询,如果查出来了 8 条数据,8 个时间 ,你要用哪一个呢 ?
唐诗三百首 2018-01-22
  • 打赏
  • 举报
回复
SQL语句中有: GETDATE()-(select v_landlord.date_start from v_landlord) 当后面括号里的查询返回多个date_start的值时, 系统无法判断应该用哪个给GETDATE()减. 这是逻辑错误, LZ应思考一下程序逻辑.

22,209

社区成员

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

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