私はこのようなものを使用しました。事実上、検索するアイテム(私の場合はアカウントと連絡先)のすべてのGUIDを使用してテーブル変数を作成し、アクティビティのパーティであるすべてのアクティビティについてAcitivtyPartyにクエリを実行します。次に、Activityに移動して詳細を取得します。
Declare @account_guid varchar(200)
Select @account_guid = 'insert some guid here'
Declare @GUIDS as Table(id varchar(200), fullname varchar(200), objecttype char(2))
Declare @ActivityIds as Table(id varchar(200))
--grab all guids we need activities for
Insert Into @GUIDS
Select contactid, fullname, 'C'
From FilteredContact
Where accountid = @account_guid
UNION ALL
Select accountid, [name], 'A'
From FilteredAccount
Where accountid = @account_guid
--find all activities where the account/contact are referred to
Insert Into @ActivityIds
Select activityid
From FilteredActivityParty fap
Join @GUIDS g on g.id=fap.partyid
Group By activityid
Select *
From FilteredActivityPointer fap
Join @ActivityIds a on fap.activityid = a.id
Where statecode<>2 --hide canceled items