【发布时间】:2017-10-19 12:22:04
【问题描述】:
我有下表。当 CategoryID = 201 Per ID 时,我需要每个 ID 的 MAX 值
表A
ID Date CategoryID
1 1/1/17 101
1 1/2/17 201
1 1/4/17 201
1 1/5/17 301
2 1/1/17 101
2 5/1/17 201
(工作)查询:
,MAX(TABLEA.DATE)
KEEP (DENSE_RANK LAST ORDER BY TABLEA.DATE)
OVER (PARTITION BY ID)
AS most_recent_dt
我需要在查询中添加一个条件:When CategoryId = 201 Then take the MAX Date
预期输出:
ID Date CatergoryId Most_Recent_Dt
1 1/1/17 101 1/4/17
1 1/2/17 201 1/4/17
1 1/4/17 201 1/4/17
1 1/5/17 301 1/4/17
2 1/1/17 101 5/1/17
2 5/1/17 201 5/1/17
*编辑
现在我有了我的 MAX 线,我只需要添加基于 MAX 线的条件。
预期输出:
简而言之。
**按 ID 分区。
当 CategoryID = 201 时应用最大值
现在根据 MAX 值 ROW 应用条件
当 Role = Gold 且 HistID 不为空时,则“已批准”
其他“待处理”
ID Date CategoryID Most_Recent_Dt Role HistId Category
1 1/1/17 101 1/4/17 Gold (Null) Approved
1 1/2/17 201 1/4/17 Bronze 201 Approved
*1 1/4/17 201 1/4/17 Gold 101 Approved
1 1/5/17 301 1/4/17 Gold 101 Approved
2 1/1/17 101 5/1/17 Gold (Null) Pending
*2 5/1/17 201 5/1/17 Bronze 101 Pending
【问题讨论】:
-
条件不满足时你想怎么办?
-
好问题:那么'未满足'。是否可以嵌入案例表达式,以便我可以控制何时不满足条件?
-
我已经更新了我的问题