我想列出每个帐户(filteredaccount)最近的活动(来自filteredactivitypointer)。问题是,这些活动并没有直接链接到account,而是在它们之间有联系人。因此帐户可以有多个联系人。多个联系人可以有多个活动。
完整实体模型
问题:如何检索每个帐户最近的活动?
我尝试了以下操作(使用sql server 2016、transact-sql):
SELECT *
FROM FilteredContact co cross apply
(SELECT TOP 1 *
FROM FilteredActivityPointer fa
where fa.regardingobjectid = co.contactid and fa.regardingobjecttypecode=2
order by fa.actualend desc
) fa
JOIN FilteredAccount ac on ac.accountid = co.accountid
JOIN FilteredOpportunity opp on opp.accountid = ac.accountid and opp.statecode=0
联系和活动之间的关系是使用regardingobjectid和regardingobjecttypecode建模的
我的问题是上面的查询列出了每个联系人的最新活动,而不是每个帐户。如何确定一个帐户的所有联系人的最近活动?
1条答案
按热度按时间wj8zmpe11#
这也许更简单
row_number()
比cross apply
: