2017-08-26 14 views
0

私はSQLを学び始めているので、いくつかの練習をする必要があります。練習の1つ私はちょうどそれをする方法を見つけることができません。 4つのテーブルを持つデータベースがあります。そして、この練習では次のようになります: 家の番号2のランダムな通りに住んでいるAlmeloの人々によって雇われたスクーターのブランドとタイプの概要を表示します。追加の条件は、合計金額が100ユーロ。また、契約の総額も表示します。データベース 'データベース'でSQLクエリを実行中にエラーが発生しました: 'GROUP'の近く:構文エラー

私は多くを試して、ほとんどそれを得ました。しかし、今、私は毎回このエラーが発生します(タイトルを参照)

これが私のクエリです:

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 

あなたは私がこれを解決するために助けてくださいことはできますか?

+4

「グループ化」の後に来る –

+0

ああああ...ありがとうたくさん – Niels

+0

それは動作します!すばらしいです! – Niels

答えて

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

あなたのクエリは次のようになります。

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いくつかの列が非常に悪い習慣ですが、他の列によって集約します。
関連する問題