目次 |
---|
・GROUP BY ・GROUP BYでエラー |
SELECT AAAA AS A FROM TEST GROUP BY A上記はOracleでは構文は正しいですが、SQL Serverではエラーになります。
SELECT AAAA AS A FROM TEST GROUP BY AAAAその他、以下のようなSQLの場合も同じです
SELECT SURYO + BARA_SURYO AS A FROM TEST GROUP BY SURYO + BARA_SURYOこのようにOracleばかり使用していると違和感がありますが、SQL ServerのGROUP BY句では別名は使用できません。
SELECT CASE WHEN PIECE_SU = 0 THEN MAX(PIECE_SU) & MAX(IRISU) ELSE 1 END AS PIECE_SU, ~~~~(その他の集計関数) FROM T_SYUKKA GROUP BY ~~~上記のCASE WHENでPIECE_SUというのがエラーになります。エラーメッセージは以下になります。
列~~は選択リスト内では無効です。この列は集計関数またはGROUP BY句に含まれていません。要するにCASE WHENのPIECE_SUも集計関数にする必要があるという事です。