[英]Using 'Calculated' function on field prefixed with table alias - SAS SQL
我正在嘗試使下面的Proc SQL步驟在SAS 9.2中工作,但由於我似乎不喜歡使用表別名來定義合並期間兩個表中的字段,因此該操作已經失敗了:
proc sql;
create table test1 as
select
a.var1,
b.var2 * -1 as var2,
b.var3,
calculated b.var1 * a.var2 as var4
from table1
left join
table2
on a.var5 = b.var5;
quit;
在“計算的”命令和字段名稱之間沒有表別名的情況下,此代碼將執行而不會出現問題。 有誰知道我要解決的語法?
如果我不使用計算的命令,則SQL步驟無法識別定義字段“ var1”時使用的計算。
謝謝
CALCULATED
告訴它引用輸出中(在選擇中)而不是輸入數據集中存在的列,因此表別名沒有任何意義。 您只需要CALCULATED var2
。
proc sql;
create table test1 as
select
a.var1,
b.var2 * -1 as var2,
b.var3,
calculated var2 * a.var1 as var4
from table1
left join table2
on a.id=b.id;
quit;
只要沒有確定b.var2 * -1
只是一個重命名, b.var2 * -1
可以了。
您試圖創建一個包含兩列具有相同名稱( var1
)的表。 我對proc sql
抱怨並不感到驚訝。 嘗試給他們使用其他名稱:
proc sql;
create table test1 as
select a.var1 as a_var1,
b.var1 * -1 as b_var1,
b.var2,
calculated b_var1 * a.var1 as var3
from table1 left join
table2
on a.var4 = b.var4;
quit;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.