1
複数の条件を含むSELECT
ステートメントがあります。ここでselectステートメントの複数の条件
は、クエリのために私のコードです:
SELECT
G.CLOSED_MONTH, EE.BASIC_SALARY, V.EMPLOYEE_NO, G.CLOSED_YEAR
CASE
WHEN ((G.CLOSED_YEAR = YEAR (GETDATE()) AND G.CLOSED_MONTH <= MONTH (GETDATE())
THEN EE.BASIC_SALARY)
WHEN (G.CLOSED_YEAR BETWEEN EE.DATE_JOINED AND YEAR (GETDATE())
THEN CASE
WHEN V.ACTIVITY_TYPE = '0'
THEN EE.BASIC_SALARY - V.ACTIVITY_VALUE
ELSE EE.BASIC_SALARY + V.ACTIVITY_VALUE
END)
ELSE ((G.CLOSED_YEAR = YEAR (EE.DATE_JOINED) AND G.CLOSED_MONTH >= MONTH (EE.DATE_JOINED)
THEN CASE WHEN V.ACTIVITY_TYPE = '0'
THEN EE.BASIC_SALARY - V.ACTIVITY_VALUE
ELSE
EE.BASIC_SALARY + V.ACTIVITY_VALUE
END)
END AS NEW_BASICSALARY
FROM
GENERAL_SPECIFICATION G
JOIN
EMPLOYEE_EMPLOYMENT EE ON G.COMPANY_CODE = EE.COMPANY_CODE
JOIN
V_EMPLOYEE_PAYACT V ON EE.EMPLOYEE_ID = V.EMPLOYEE_ID
私は、クエリを実行しようとすると、それがエラーを取得し続け:
Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'CASE'.
文字コードごとに行ごとにコードを理解しようとすることをお勧めします。あなたはもっと学び、この投稿は決して起こらなかったでしょう:) – JohnOsborne
あなたの 'CASE'コードは完全に間違っています - 私はそれを正しくフォーマットすることもできませんでした.....あなたは一番外側の' CASE'を持っています。 .. THEN ... '節 - しかし、あなたは突然、最後の' ELSE'の後に 'THEN ......'を追加しています。** **正しく書式設定して**あなたのコードをインデントしてみてくださいどの部分が 'CASE'、' WHEN'などに属していますか?ちょうど一致しないものがあることがわかります。... –
@marc_sが正しいです。カンマを追加しても、エラーが多く発生します。私はCodeFlavasのアドバイスを受けてエラーを処理します –