Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
连接具有相同列名的两个表的SQL_Sql_Join_Sas - Fatal编程技术网

连接具有相同列名的两个表的SQL

连接具有相同列名的两个表的SQL,sql,join,sas,Sql,Join,Sas,我有两个列名称完全相同的数据集 但是,当我运行以下代码时 proc sql; create table diff as select a.fish, b.fish from newmonth as a left join previousmonth as b on a.pond = b.pond; quit; 它只返回一个包含一列的表,即fish。然而,我想要两列,a.fish和b.fish 我不想使用select a.fish作为,因为我有大约50种不同的动物要选择,不想每次都手动键入

我有两个列名称完全相同的数据集

但是,当我运行以下代码时

proc sql;
create table diff as 
select a.fish, b.fish
from newmonth as a 
left join previousmonth as b
on a.pond = b.pond;
quit;
它只返回一个包含一列的表,即fish。然而,我想要两列,a.fish和b.fish

我不想使用select a.fish作为,因为我有大约50种不同的动物要选择,不想每次都手动键入

SQL有没有办法根据它来自哪个表自动标记列


谢谢,

请尝试下面的查询并检查结果:

proc sql;
create table diff as 
select *
from newmonth as a 
left join previousmonth as b
on a.pond = b.pond;
quit;

给他们起不同的名字:

create table diff as 
    select a.fish as a_fish, b.fish as b_fish
    from newmonth a left join
         previousmonth b
         on a.pond = b.pond;

嘿不幸的是,它返回的列数与数据集的列数相同,而不是两倍于数据集的列数。如果没有as,则没有SQL语法可以满足您的需要。可以使用宏和表元数据创建可能需要的SQL语句。然而,这种连接似乎是为了报告或制表。您可以堆叠数据,同时创建一个新变量,其值对应于行源表。堆叠后可以使用
Proc tablate
。该代码返回一个包含两列的表,两列都称为fish;它不能“返回包含一列的表”。打个招呼。明确地问1个具体的、经过研究的、不重复的问题&不要包括不必要的问题。