【发布时间】:2016-07-14 15:50:55
【问题描述】:
我有一个很大的活动拉动,我必须在一个表中获取选定 ca.matter_key 的最后一个活动,由 ca.activity_key(表主键)确定。我想知道获得这个的最有效方法,因为最终结果将在 20K 左右。
select distinct
ca.matter_key,
ca.activity_key,
ca.actrow1,
ca.actrow2,
ca.actrow3,
ca.actrow4
FROM CaseAct ca
where
ca.matter_key in (
4945046,
5040953,
5025296,
5078360
)
上面的结果将给出以下结果:
Matter_key activity_key actrow1 actrow2 actrow3 actrow4
4945046 12 Data Data Data Data
4945046 13 Data Data Data Data
4945046 14 Data Data Data Data
5040953 35 Data Data Data Data
5040953 36 Data Data Data Data
5025296 77 Data Data Data Data
5025296 78 Data Data Data Data
5025296 79 Data Data Data Data
5078360 NULL Data Data Data Data
4887024 93 Data Data Data Data
4887024 94 Data Data Data Data
4887024 95 Data Data Data Data
5061591 NULL Data Data Data Data
我需要:
Matter_key activity_key actrow1 actrow2 actrow3 actrow4
4945046 14 Data Data Data Data
5040953 36 Data Data Data Data
5025296 79 Data Data Data Data
5078360 NULL Data Data Data Data
4887024 95 Data Data Data Data
5061591 NULL Data Data Data Data
我在之前的集合中使用了 group by ca.matter_key 和 Max(ca.activity_key) 的组合使用标准,但是我需要预先选择的 matter_keys,这是一个很大的列表。另外,在 ca.activity_key() 中的 Where 是提取此列表的最有效方法吗?
感谢您的帮助!
【问题讨论】:
-
Matter_keys4887024和5061591是从哪里来的……?您的查询已经在Matter_key列上进行过滤,而这些不在查询中。 -
抱歉,为了便于阅读,我手动删除了行,它们一定已经被清除了。
标签: sql sql-server sql-server-2005