join多表

mec1mxoz  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(392)

我有数据,我需要加入到不同的表根据条件,月。我正在使用procsql。目前我正在使用

Proc sql;
create table test as 
If month="mar"
then 
select a.*,
b.var1,
b.var2,
from 
data as a
left join
data2_mar
on a.id=b.id

else

select a.*,
c.var1,
c.var2,
from 
data as a
left join
data2_April
on a.id=c.id;
Run;

然而,这是行不通的。非常感谢您的帮助。

eblbsuwk

eblbsuwk1#

您可以使用条件联接在单个查询中执行此操作:

select 
    a.*,
    coalesce(b.var1, c.var1) var1,
    coalesce(b.var2, c.var2) var2
from data a
left join data2_mar b
    on  b.id = a.id
    and month = 'mar'
left join data2_april c
    on  c.id = a.id
    and month = 'april'

请注意,您不应该有多个表来存储不同月份的相同数据。相反,您应该有一个单独的表,再多出一列来存储月份。

相关问题