单行子查询返回多个行,这个sql错在哪呀? 5

 我来答
niumba
2013-10-02 · TA获得超过1万个赞
知道小有建树答主
回答量:850
采纳率:80%
帮助的人:1001万
展开全部
这个错误很明显啊。查找重复值,然后加个逻辑处理下。
去修改你的过滤条件直到有一条结果为止。
这肯定是子查询的逻辑问题。返回多个值,系统怎么知道你要把哪个用来更新。
检查子查询,看子查询返回的结果是不是你期望的。如果有多余的说明WHERE条件还不够。如果多个数据行都是你的期望值,那说明你的设计有问题。
更多追问追答
追问
显示每年的月信息,表里有id,年份,月份(1-4月),月信息,按年分组啊,没问题啊。
追答
还要用sum聚合函数的啊
badkano
2013-10-02 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885371
团长

向TA提问 私信TA
展开全部

换个写法吧

select year,
sum(case when month='1' then amount else 0 end) m1,
sum(case when month='2' then amount else 0 end) m2,
sum(case when month='3' then amount else 0 end) m3,
sum(case when month='4' then amount else 0 end) m4
from salary
group by year
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wxhysoft
2013-10-02 · TA获得超过371个赞
知道小有建树答主
回答量:248
采纳率:0%
帮助的人:315万
展开全部
你用了GROUP BY 分组,非分组域需要用聚合。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式