我有一个数据集,
Have
,看起来像这样:-
ID Group Label_T
1763 A Y
1763 A M
6372 B M
我想通过不同的 ID 将此数据集连接到另一个数据集,并有一个基于变量 Group 的条件,如下所示:-
proc sql;
create table want as
select a.ID
a.Qty
(case when b.Group = 'A' then 'Right'
when b.Group = 'B' then 'Left' end) as Category
from work.test a
left join (select distinct ID from work.have) b
on a.ID=b.ID
;
quit;
我希望数据集看起来像这样:-
ID Qty Category
1763 28 Right
6372 30 Left
3908 41 <blank>
对于不在“有”数据集中的 ID,将“类别”列留空。当我运行此命令时,我不断收到错误:“在用相关名称 b 标识的表/视图中找不到列组。” Group 列不在 work.test 数据集中。我想我可能必须使用 ID 而不是 Group 的条件,但我是否需要条件条件的附加数据集然后加入?
如果
Group
中没有 work.test
列,那么您应该在子查询中使用该列。效果会很好
proc sql;
create table want as
select a.ID
a.Qty
(case when b.Group = 'A' then 'Right'
when b.Group = 'B' then 'Left' end) as Category
from work.test a
left join (select distinct ID, Group from work.have) b
on a.ID=b.ID
;
quit;