联系人和投诉之间存在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。
答案 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