2016-08-23 8 views
1

を失敗しました - 私はSASが私に教えしようとしているのかわからないのですOLEDB構文エラー - IColumnsInfo :: GetColumnInfoが、私はSAS EGを通じてこのクエリを実行しようとしていますが、私は次のエラーメッセージ取得しておく

"ERROR: Describe error: IColumnsInfo::GetColumnInfo failed. : [DB2/AIX64] SQL0104N An unexpected token ")" was found following "1.GROUPNUMBER, best.". Expected tokens may include: "". SQLSTATE=42601"

を。私はコードを数多く調整しましたが、エラーを修正することができず、エラーメッセージも変更できませんでした。助けてくれてありがとう!コードは次のとおりです。

proc sql; 
    connect to OLEDB(provider=IBMDADB2 datasource=OCCPR user=&papiuid password=&papipwd); 
    create table M1Enrollment (compress=yes) as select * from connection to OLEDB 

(SELECT t1.HICN, 
      t1.SERVICEMONTH, 
      /* Group Number */ 
      (case when t1.ENROLLMENTSOURCESYSTEM = '002' then substr(t1.MEMBERID,1,find(t1.MEMBERID,"-")-1) 
      when t1.ENROLLMENTSOURCESYSTEM = '007' then substr(t1.GROUPNUMBER,1,6) 
      when t1.ENROLLMENTSOURCESYSTEM = '001' 
      then PUT(INPUT(t1.GROUPNUMBER, best.), z5.) end 
      ) AS GroupNumber 
     FROM TABLE.M1_PLANNEDENROLLMENT t1 
     WHERE t1.PBPID BETWEEN '800' AND '899' and t1.SERVICEMONTH >= 201601 
     and t1.SERVICEMONTH <= 201612); 
disconnect from OLEDB; 
quit; 

答えて

0

コードは接続のため実行できません。

トリスを試してもよろしいですか?

proc sql; 
    connect to OLEDB(provider=IBMDADB2 datasource=OCCPR user=&papiuid password=&papipwd); 
     create table M1Enrollment (compress=yes) as select * from connection to OLEDB 

     (
      SELECT t1.HICN, 
        t1.SERVICEMONTH, 
        /* Group Number */ 
        (case 
         when t1.ENROLLMENTSOURCESYSTEM = '002' then substr(t1.MEMBERID,1,find(t1.MEMBERID,"-")-1) 
         when t1.ENROLLMENTSOURCESYSTEM = '007' then substr(t1.GROUPNUMBER,1,6) 
         when t1.ENROLLMENTSOURCESYSTEM = '001' then PUT(INPUT(t1.GROUPNUMBER, best5.), z5.) 
        end) AS GroupNumber 
      FROM TABLE.M1_PLANNEDENROLLMENT t1 
      WHERE t1.PBPID BETWEEN 800 AND 899 
       and t1.SERVICEMONTH >= 201601 
       and t1.SERVICEMONTH <= 201612 
     ); 
    disconnect from OLEDB; 
quit; 

changed best. to best5. and BETWEEN '800' AND '899' to BETWEEN 800 AND 899

+0

私はこれを行うと、それは以前のコメントからのエラーメッセージを取り除きます。しかし、librefの "table"が割り当てられていないという新しいエラーが出ます。これは接続によって変わるものなのでしょうか、ここに書かなければならない標準的なコードがありますか?私はlibrefを完全に使いこなそうとしましたが、これもエラーを返しました。 – theponcer

+0

が更新されました –

関連する問題