解决FetchXML的外连接限制

时间:2011-12-20 18:05:39

标签: dynamics-crm-2011 dynamics-crm-online

是否可以通过在线使用FetchXML在下一个30-60-90天内获取按地区划分的所有商机列表(地区在帐户中定义) Dynamics CRM 2011的版本。

我尝试通过在测试数据库上编写SQL来实现这一点,并且可以使用以下SQL:

select Territory.TerritoryId ,
 (select count(OpportunityId) from Opportunity where Opportunity.AccountId = Account.AccountId and Account.TerritoryId = Territory.TerritoryId and EstimatedClosureDate < '12/12/2011') as OppIn30Days,
 (select count(OpportunityId) from Opportunity where Opportunity.AccountId = Account.AccountId and Account.TerritoryId = Territory.TerritoryId and EstimatedClosureDate < '12/1/2012') as OppIn60Days,
 (select count(OpportunityId) from Opportunity where Opportunity.AccountId = Account.AccountId and Account.TerritoryId = Territory.TerritoryId and EstimatedClosureDate < '12/2/2012') as OppIn90Days
  from territory left outer join Account on Territory.TerritoryId = Account.TerritoryId --group by Territory.TerritoryId, Account.TerritoryId, Account.AccountId
-- TODO parameterization of query, etc. 

SQL的结果如下所示。

Columns: TerritoryId|OpportunitiesClosingIn30Days|OpportunitiesClosingIn60Days
Data:   US              5                                   1
        Europe          1                                   4
        Asia            4                                   5

这是否可以使用FetchXML执行此操作,因为不支持外连接?

如果我在Opportunity中添加了隐藏的区域字段并编写了一些代码,以便每次创建商机时都会从相应的帐户复制区域,这会有所帮助吗?

1 个答案:

答案 0 :(得分:1)

不幸的是,使用FetchXML是不可能的。您可能能够使用报告将其虚拟化,然后将所有相关数据拉入其中以进行显示,但您需要SSRS大师为您解答。

您对非规范化数据的建议可能是正确的道路:如果您将Territory添加到您的商机中,则可以使用MSCRM仪表板显示按地区逐月关闭的商机。