2016-09-13 75 views
0

我想使用如下where子句子集數據子句:SAS SQL凡別名失敗

proc sql outobs=100; 
create table Dbtr_Clnt_Generl_Inf as 
    select FACS_Schema_ID '', 
     'DBACCT*'n as ACCOUNT_NUM '', 
     input(DBLSTDTI,yymmdd10.) as Date_Listed format=date09. 
    from sqlsrv10.Acct_Dbtr_Clnt_Generl_Inf 
    where Date_Listed >= '01Sep2016'd 
    ; 
quit; 

但我得到一個錯誤:錯誤:以下列沒有起作用的表中找到:Date_Listed。

回答

1

在PROC SQL中,您需要在引用派生變量時使用CALCULATED關鍵字。

where calculated Date_Listed >= '01Sep2016'd 

或者只是引用原始變量,而不是派生一個

where DBLSTDTI='2016-09-01' 
+0

這需要很長的時間來處理100個觀測。我取消了查詢。 – scottlittle

+0

你是從數據庫中拉出來的嗎?然後您需要使用格式,以便數據庫可以處理WHERE子句。試試DBLSTDTI ='2016-09-01'。或者使用顯式傳遞查詢。 – Tom

+0

但由於它是一個字符串,我只能等同於一個字符串,但不能使用大於(>)某個日期。我有一個LIBNAME連接到我的數據庫。 DBLSTDTI作爲日期存儲在SQL Server數據庫中,但對錶Acct_Dbtr_Clnt_Generl_Inf的LIBNAME連接sqlsrv10在我查看屬性時說它是一個文本字段。 – scottlittle