我有一个数据集,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>

对于不在Have DataSet中的ID,将Column Category留空.当我运行此命令时,我一直收到错误:"无法在使用相关名称b标识的表/视图中找到列组."列Group不在work.test数据集中.我认为我可能必须使用条件ID而不是Group,但我是否需要为条件THEN JOIN提供额外的数据集?

推荐答案

如果work.test中没有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, Group from work.have) b
        on a.ID=b.ID
;
quit;

Sql相关问答推荐

Oracle SQL中的累计总数

在数据分区内执行确定

对于表A中的每一行,更新表B中与金额有关的行

从列的不同值创建列

使用来自不同深度的嵌套组的值执行计算的干净方法?

如何在snowflake中进行SQL的反向填充

每年独特口味的冰淇淋数量

在SQL中,筛选其他列中只有一个值的ID

Postgresql - WHERE 中的 MAX 标准 - 初学者问题

Grafana SQL 模板变量(值、文本)

将最近的结束日期与开始日期相匹配

返回给定日期后的第 4 个工作日(不包括公众假期)

PostgreSQL:从多个字段收集特定指标的最后一个条目

如何对 jsonb 中的字段执行求和,然后使用结果过滤查询的输出

IN子句使用的表值用户定义函数参数

如何创建一个递归计数器来查找一个元素有多少父级和子级?

在 postgresql 中,我可以将其组合成一个查询吗?

以 15 分钟为间隔的使用情况SQL 查询

如何在 RavenDB Studio (RQL) 中插入更新文档

Postgres 窗口函数未按预期工作