2017-07-12 42 views
0

我有两个表无效使用组功能 - #1111

表销售商

enter image description here

表bestellingen

enter image description here

我的查询:

SELECT v.naam, 
     SUM(COUNT(b.status) * 1.50) 
    FROM verkoper AS v INNER JOIN 
     bestellingen AS b ON b.verkoper = v.id 
    WHERE b.status = 'retour' 
GROUP BY b.verkoper 

它给了我错误#1111 - Invalid use of group function 任何想法?

+0

您不能选择不属于分组的一部分的列(此处:v.naam) – CBroe

+0

不允许我在聚合内部进行聚合。此外,Mysql允许这种奇怪的方式来编写'group by',所以我们无法猜测你想要实现什么。你能否加上你的预期结果 –

+0

GROUP BY无效。将使用较新的MySQL版本(除非在兼容模式下)返回一个错误,以及旧版MySQL的不可预知的结果。一般的GROUP BY规则说:如果指定了GROUP BY子句,SELECT列表中的每个列引用必须标识一个分组列或者是一个set函数的参数! OMG! – jarlh

回答

2

我认为这可能是你想要什么:

SELECT v.naam, COUNT(*)*1.50 
FROM verkoper v INNER JOIN 
    bestellingen b 
    ON b.verkoper = v.id 
WHERE b.status = 'retour' 
GROUP BY v.naam; 

注:

  • GROUP BY键应该在符合查询条件的非聚集列。
  • 您可以使用COUNT(*)COUNT(1)来统计所有行。输入更简单。
  • 没有理由在SUM()内嵌套COUNT()
+0

OMG!谢谢,这对我来说太愚蠢了......甚至没有尝试过 – LenapCapo

相关问题