CASE ステートメント内で NOT IN 用語を使用したいのですが、構文エラーが発生します。T.Segment 列内に特定の数値 (この場合は 14) が表示されない場合は常に TribQin=0 を設定したいと考えています。
SELECT DISTINCT F.JDAY,
F.TL6 AS 'OriginalLayer',
CASE
WHEN 14 NOT IN T.Segment THEN 0
ELSE
(SELECT T.flow
FROM trib_data AS T
WHERE T.JDAY<=F.JDAY AND T.Segment=14 AND T.Year=2000
ORDER BY T.JDAY DESC LIMIT 1)
END AS 'TribQin'
FROM FlexGridLayers AS F
INNER JOIN trib_data AS T
ON T.Segment=F.Segment
WHERE F.Year=2000 AND F.Segment=14
ORDER BY F.JDAY;
私が得ているエラーは次のとおりです。
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'T.Segment THEN 0
ELSE
(SELECT T.flow
FROM trib_data AS T
' at line 4