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

如题所述

这个错误很明显啊。查找重复值,然后加个逻辑处理下。
去修改你的过滤条件直到有一条结果为止。
这肯定是子查询的逻辑问题。返回多个值,系统怎么知道你要把哪个用来更新。
检查子查询,看子查询返回的结果是不是你期望的。如果有多余的说明WHERE条件还不够。如果多个数据行都是你的期望值,那说明你的设计有问题。追问

显示每年的月信息,表里有id,年份,月份(1-4月),月信息,按年分组啊,没问题啊。

追答

还要用sum聚合函数的啊

追问

???,前辈能否帮我写出一个来,让我参考呢?

追答

你源代码条件比较多 我这里测试没效果的 你借本sql的书看一下就知道了,重点看聚合函数就明白了!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-02

换个写法吧

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

第2个回答  2013-10-02
你用了GROUP BY 分组,非分组域需要用聚合。
相似回答