2017-03-10 25 views
0

最初のCASEキーワード以降のすべての単語にエラーが発生している理由が分かりません。最後の数時間、私の脳に対してここでは、コードのトリミングされたサンプルがあります:MySQL CASEステートメントが認識されないキーワード&予期しないトークン

CREATE TEMPORARY TABLE low_revenue_a ENGINE=MEMORY AS 
(SELECT fielda,fieldb, 
CASE WHEN quality_rev = 'A' THEN 1 WHEN quality_rev = 'B' THEN 2 WHEN quality_rev = 'C' THEN 3 END AS quality_rev, 
fieldc,fieldd, 
CASE WHEN quality_sales = 'A' THEN 1 WHEN quality_sales = 'B' THEN 2 WHEN quality_sales = 'C' THEN 3 END AS quality_sales, 
fielde,fieldf, 
CASE WHEN quality_other_sales = 'A' THEN 1 WHEN quality_other_sales = 'B' THEN 2 WHEN quality_other_sales = 'C' THEN 3 END AS quality_other_sales, 
fieldg,fieldh,myyear 
FROM Db.mytable 
WHERE myyear = 2014); 

私はCASE文を追加すると、すべての予期しないトークンと認識されていないキーワードのエラーが表示します。何か案は?

答えて

1

これは同じエラーを生成しますか?

CREATE TEMPORARY TABLE low_revenue_a ENGINE=MEMORY AS 
    SELECT fielda, fieldb, 
      (CASE WHEN quality_rev = 'A' THEN 1 
       WHEN quality_rev = 'B' THEN 2 
       WHEN quality_rev = 'C' THEN 3 
      END) AS quality_rev, 
      fieldc, fieldd, 
      (CASE WHEN quality_sales = 'A' THEN 1 
       WHEN quality_sales = 'B' THEN 2 
       WHEN quality_sales = 'C' THEN 3 
      END) AS quality_sales, 
      fielde, fieldf, 
      (CASE WHEN quality_other_sales = 'A' THEN 1 
       WHEN quality_other_sales = 'B' THEN 2 
       WHEN quality_other_sales = 'C' THEN 3 
      END) AS quality_other_sales, 
      fieldg, fieldh, myyear 
    FROM Db.mytable 
    WHERE myyear = 2014; 
+0

問題は2倍でした。 1つは、角かっこがphpmyadminに表示されるエラーを取り除き助けてくれました。もう一つの理由は、フィールド名のスペルが間違っているという私の愚かな見落としでした:quality_rev。どうもありがとう!それにもかかわらず、あなたの提案は、私が受けていた過多の過ちについてはうまくいった。 –

関連する問題