0
これはOracleのスクリプトですが、MySQLで実行する際に問題があります。MYSQLでこのスクリプトを実行するにはどうすればよいですか?
SELECT s.branch_no, SUM(s.staff_salary)
from staff AS s
HAVING SUM(staff_salary) = (SELECT MAX(SUM(S2.staff_salary))
FROM staff AS S2
GROUP BY S2.BRANCH_NO)
GROUP BY s.branch_no;
私は、MySQL上でそれを実行したときに、私は取得エラー:
SELECT s.branch_no, SUM(s.staff_salary)
from staff AS s
HAVING SUM(staff_salary) = (SELECT MAX(SUM(S2.staff_salary))
FROM staff AS S2
GROUP BY S2.branch_no)
GROUP BY s.branch_no
LIMIT 0, 50
MySQLは言った:
# 1064 - あなたはあなたのSQL構文でエラーが発生しています。右の構文はラインで「s.branch_no LIMIT 0、50、GROUP BY」 近くを使用するためにあなたのMySQLサーバのバージョンに対応するマニュアルを確認してください7
'GROUP BY'は(少なくともMS SQLで、MySQLではおそらく同じ)' HAVING'前に来る必要があります。私はちょうどPL SQLのドキュメントを見て、それはそこに同じ構文が表示されます。 –
通常、HAVING句の前には、[ほとんどすべてを注文する](https://www.w3schools.com/sql/sql_having.asp)があります。 :) –
@PaulHodgesグループby –