【发布时间】:2020-08-31 08:07:08
【问题描述】:
我使用 MS SQL Server 2016 并尝试有效地查询 MS Dynamics 2016 本地数据库。您不需要有关 Dynamics 的特殊知识来回答我的问题,因为它是一个 SQL 问题,而是一个 CRM 问题。
假设您有实体 FilteredAccounts 和 FilteredActivities(这是动态视图中的名称)
FilteredActivites 具有以下列:
accountid
name
FilteredActivites 具有以下列:
activityid
actualend [DATETIME]
regardingobjectid (referring to account)
statecode (int meaning 1 = completed)
我想要实现的是所有帐户的列表,该列表向每个帐户显示最近完成的活动。
我试图通过以下方式获取最近的活动:
SELECT TOP 1 *
FROM [dbo].[FilteredActivityPointer] As Activities
ORDER BY Activities.actualend DESC
现在如何有效地加入 FilteredAccounts 和 FilteredActivities,以便每个 FilteredAccount 行我只获得最新的 FilteredActivity?我计算最近活动的方式是一种有效的方法吗?(即存储在数据库中的活动 > 1.000.000 行)。是否有更好的方法来执行此操作(例如,每当添加/更改活动时触发脚本,该脚本在帐户上存储最新 activityid 的 id。这会损害 CRM 系统的完整性吗?您不想更改我想你的 crm 的系统数据库是这样的吗?
【问题讨论】:
标签: sql dynamics-crm sql-server-2016 dynamics-crm-2016