2017-08-03 35 views
0

SASでPROC SQLステップを実行しようとしていますが、何らかの理由でエラーが発生しています。ここに私のコードは次のように無効なシンボル/構文

PROC SQL; 
    CREATE TABLE NewTable AS 
     SELECT a.ID as ID, 
      a.Group as Group, 
      a.2014_04, 
      b.2014_04, 
      c.2014_04, 
      b.2014_04/a.2014_04, 
      c.2014_04/a.2014_04 
     FROM work.TESTDATA a 
     LEFT OUTER JOIN work.TESTDATA_0000 b on a.ID 
     LEFT OUTER JOIN work.TESTDATA_0001 c on b.ID; 
QUIT; 

私が受け取るエラーは以下のとおりです。

ERROR 22-322: Syntax error, expecting one of the following: a name, *. 

ERROR 200-322: The symbol is not recognized and will be ignored. 

これらのエラーは、変数に焦点を当てているようです。エラーは変数を参照する方法と関係がありますか?

+0

区切るよう識別子無効SAS変数名であるものを使用することができます'a。" 2014_04 "' – jarlh

+0

数字で始まる変数名はどのように作成しましたか?あなたはそれが変数名であり、変数に付けられたラベルではないと確信していますか? – Tom

答えて

1

SASでは、変数名は文字またはアンダースコアで始まる必要があります。したがって、2014_列はSASでは無効です。

このようにしてみてください。

PROC SQL; 
    CREATE TABLE NewTable AS 
     SELECT a.ID as ID, 
      a.Group as Group, 
      a.'2014_04'n, 
      b.'2014_04'n, 
      c.'2014_04'n, 
      b.'2014_04'n/a.'2014_04'n, 
      c.'2014_04'n/a.'2014_04'n 
     FROM work.TESTDATA a 
     LEFT OUTER JOIN work.TESTDATA_0000 b on a.ID 
     LEFT OUTER JOIN work.TESTDATA_0001 c on b.ID; 
QUIT; 

'<invalid_sas_var_name>'nは、あなたがまだそうでない場合、例えば、