CRM报告:由相关实体进行分组

时间:2012-11-08 20:52:04

标签: tsql dynamics-crm dynamics-crm-2011 crm dynamics-crm-4

联系人和投诉之间存在N< N>关系。

我的报告目前看起来像这样:

      Status 1    Status 2    Status 3    Status 4
         3           4           32          34

使用以下查询:

SELECT 
    SUM(case WHEN status = 1 then 1 else 0 end) Status1,
    SUM(case WHEN status = 2 then 1 else 0 end) Status2,
    SUM(case WHEN status = 3 then 1 else 0 end) Status3,
    SUM(case WHEN status = 4 then 1 else 0 end) Status4,
    SUM(case WHEN status = 5 then 1 else 0 end) Status5
FROM [DB].[dbo].[Contact]

这列出了每种状态中的联系人数量。我现在正在尝试在CRM中的相关实体中进行GROUP BY投诉。

                                         Status 1    Status 2    Status 3    Status 4
Contact.Complaints.CreatedBy[1]             3           4           32          34
Contact.Complaints.CreatedBy[2]             3           4           32          34
Contact.Complaints.CreatedBy[3]             3           4           32          34
Contact.Complaints.CreatedBy[4]             3           4           32          34

我不知道从哪里开始我的GROUP BY语句 - 任何指针都会很棒。我觉得我必须有另一个FROM语句指向NN关系,或者至少是Complaints。

1 个答案:

答案 0 :(得分:0)

它应该像向投诉(通过N:N)表添加JOIN一样简单。我完全同意James,只是确保您以CRM用户身份执行报告,否则Filtered视图将返回0行。

SELECT
MyComplaintType,
...existing Sum(Case) stuff

FROM
FilteredContacts c
JOIN
Filterednew_Contacts_new_Complaint_new_complaints r1 (whatever your N:N is)
  ON c.contactId = r1.contactId
JOIN
Filterednew_Complaint comp
  ON r1.new_complaintId = comp.new_complaintId
GROUP BY
MyComplaintType