在数据库'database'上执行SQL查询时出错:在“GROUP”附近:语法错误

时间:2017-08-26 19:09:33

标签: mysql sql

我开始学习SQL所以我需要做一些练习。其中一个练习我只是无法找到如何做到这一点。 我们有一个包含4个表的数据库。在这个练习中就像: 显示Almelo人员雇佣的滑板车的品牌和类型的概述,住在一个2号门的随意街道。额外的条件是支付的总金额应该超过100欧元。还显示合同总金额。

我已经尝试了很多,几乎得到了它。但现在我每次都会得到这个错误(见标题)

这是我的疑问:

SELECT merk, type, SUM(betaald_bedrag)
FROM T_contract
INNER JOIN T_klant ON T_contract.klantnummer = T_klant.klantnummer
INNER JOIN T_betaling ON T_contract.contractnummer = T_betaling.contractnummer
WHERE plaats = "Almelo"
AND adres LIKE "% 2"
HAVING SUM(betaald_bedrag) > 100
GROUP BY T_betaling.contractnummer

你能帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

SELECT merk, type, SUM(betaald_bedrag)
FROM T_contract
INNER JOIN T_klant ON T_contract.klantnummer = T_klant.klantnummer
INNER JOIN T_betaling ON T_contract.contractnummer = T_betaling.contractnummer
WHERE plaats = "Almelo"
AND adres LIKE "% 2"
GROUP BY T_betaling.contractnummer
HAVING SUM(betaald_bedrag) > 100

答案 1 :(得分:1)

您的查询应如下所示:

SELECT merk, type, SUM(betaald_bedrag)
FROM T_contract INNER JOIN
     T_klant
     ON T_contract.klantnummer = T_klant.klantnummer INNER JOIN
     T_betaling
     ON T_contract.contractnummer = T_betaling.contractnummer
WHERE plaats = 'Almelo' AND
      adres LIKE '% 2'
GROUP BY merk, type
HAVING SUM(betaald_bedrag) > 100;

格式化(我认为这很重要):

  • HAVING子句位于GROUP BY之后。
  • SQL中字符串的标准分隔符是单引号,而不是双引号。
  • 您应该通过SELECT中的未聚合列进行聚合。 SELECT某些列是一个非常糟糕的习惯,但是由其他列聚合。