使用';计算';以表别名为前缀的字段上的函数-SAS SQL
我正试图让以下Proc SQL步骤在SAS 9.2中正常工作,但由于在合并过程中使用表别名定义两个表中的字段似乎不太合适,这一步骤正在失败:使用';计算';以表别名为前缀的字段上的函数-SAS SQL,sql,sas,Sql,Sas,我正试图让以下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; 如果“compute
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;
如果“computed”命令和字段名之间没有表别名,则执行此代码时不会出现问题。有人知道我想要的语法吗
如果我不使用computed命令,SQL步骤将无法识别定义字段“var1”时使用的计算
谢谢您正在尝试创建一个表,该表包含两个同名列(
var1
)。我对procsql
的抱怨并不感到惊讶。尝试给他们起不同的名字:
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;
computed
告诉它引用存在于输出(选择)中的列,而不是存在于输入数据集中,因此表别名没有任何意义<代码>计算变量2是您所需要的全部
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
只是一个重命名。对不起,是的,我刚刚意识到我不需要别名。谢谢你的帮助。