0

「グループ関数の無効な使用」エラーを生成する次のクエリがあります。

SELECT dac_name, unit_name, ptn, unit_type, monthly_recurring, directory_charges
FROM sprint WHERE date='$current_sprint_date' AND CAST( directory_charges AS DECIMAL( 10, 2 ) ) > SUM( CAST( directory_charges AS DECIMAL( 10, 2 ) ) * .01) ORDER BY CAST(directory_charges AS DECIMAL(10,2)) DESC LIMIT 10; 

それを理解できないようです。どんな助けでも大歓迎です。

4

1 に答える 1

0

SUM()WHERE 句のように集計関数を使用することはできません。集計は選択された行に依存するため、行の選択中に集計を使用しても意味がありません。HAVING行が選択されて処理された後に 2 番目のフィルターを実行する句で使用できます。

SELECT dac_name, unit_name, ptn, unit_type, monthly_recurring, directory_charges
FROM sprint
WHERE date='$current_sprint_date'
HAVING CAST( directory_charges AS DECIMAL( 10, 2 ) ) > SUM( CAST( directory_charges AS DECIMAL( 10, 2 ) ) * .01)
ORDER BY CAST(directory_charges AS DECIMAL(10,2)) DESC
LIMIT 10;
于 2013-06-21T00:23:16.360 に答える