Sas 使用多个where子句作为不同的输出列多次选择同一列

Sas 使用多个where子句作为不同的输出列多次选择同一列,sas,proc-sql,Sas,Proc Sql,我有一个正在创建的临时表,我们会说第1列是YearMonth,第2列是user_id,第3列是flag1,第4列是flag YearMonth User_id Flag1 Flag2 200101 1 N N 200101 2 N N 200101 3 Y N 我想知道为什么它不会产生如下输出: Userid YearMonth1 Yearmonth2 1 202001 202001

我有一个正在创建的临时表,我们会说第1列是YearMonth,第2列是user_id,第3列是flag1,第4列是flag

YearMonth User_id Flag1 Flag2 200101 1 N N 200101 2 N N 200101 3 Y N 我想知道为什么它不会产生如下输出:

Userid YearMonth1 Yearmonth2 1 202001 202001 2 202001 202001 3 202001 用户ID YearMonth1 Yearmonth2 1 202001 202001 2 202001 202001 3 202001 我错过了什么?谢谢

我想您只需要条件聚合。
CASE
表达式是
MIN()
的参数:


userid
来自哪里?它不在您的示例数据中。我更改了它。我误下了订单,谢谢 Userid YearMonth1 Yearmonth2 1 202001 202001 2 202001 202001 3 202001
SELECT t1.userid,
       MIN(CASE WHEN t1.flag1 = 'N' THEN t1.YearMonth END) end as YearMonth1,
       MIN(CASE WHEN t1.flag2 = 'N' THEN t1.YearMonth END) end as YearMonth2
FROM t1
GROUP BY t1.userid