2017-08-25 3 views
1

以下のコードの目的は、1月1日以降に誰かがクラブに加わったときに、月ごとに複数の番号を付けることです。私はそれを実行すると、エラーメッセージが表示されます。DATEPART IN SELECT CASE動作していません

同様の用途に関する私の研究hereは、私の構文が正しいことを示しています。私の場合、私は間違って何をしていますか?

エラー102:近くに不適切な構文 '<' .`

これは完全なコードです:

SELECT 
    ID, [HIREDate], 
    CASE [HIREDate] 
     WHEN 12 - (MONTH([HIREDate])) <> 0 
      THEN 12 - (MONTH([HIREDate])) * 2 
     ELSE 0 
    END AS Days 
FROM 
    dbo.table 
WHERE 
    column1 <> '' 

答えて

1

あなたはCASE表現の二つの "スタイル" を混合しています - これを試してください:

SELECT 
    ID, [HIREDate], 
    CASE 
     WHEN 12 - (MONTH([HIREDate])) <> 0 
      THEN 12 - (MONTH([HIREDate])) * 2 
     ELSE 0 
    END AS Days 
FROM 
    dbo.table 
WHERE 
    column1 <> '' 

カラムを定義すると、あなたが表現を持っている必要がある場合は

CASE MONTH([HireDate]) 
    WHEN 1 THEN .... 
    WHEN 2 THEN ..... 

: - :えーあなたのコードのようCASEない表現

CASE [HireDate] 

は、WHEN句はのみを含めることができますWHEN句、CASEの直後にの列を置くことはできません - WHEN節にはすべての情報が必要です

関連する問題