Tsql CRM报告:按相关实体分组
联系人和投诉之间存在着NN关系Tsql CRM报告:按相关实体分组,tsql,dynamics-crm,dynamics-crm-2011,crm,dynamics-crm-4,Tsql,Dynamics Crm,Dynamics Crm 2011,Crm,Dynamics Crm 4,联系人和投诉之间存在着NN关系 Status 1 Status 2 Status 3 Status 4 Contact.Complaints.CreatedBy[1] 3 4 32 34 Contact.Complaints.CreatedBy[2] 3 4
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
我的报告目前如下所示:
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中相关实体的字段进行分组-投诉
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
我不知道从哪里开始在我的小组中发言-任何指针将是可怕的。我觉得我必须有另一份声明,指向NN的关系,或者至少是抱怨 这应该像添加一个连接到投诉(通过N:N)表一样简单。我完全同意James的观点,只要确保您以CRM用户的身份执行报告,否则过滤视图将返回0行
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
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
如果您刚刚开始学习SQL,我想推荐学习网站。是的,这是一个俄语网站,但我还没有找到更好的学习SQL的网站。在某个时候,他们会进行分组和联接,这在这个问题上应该对您有所帮助。您应该使用过滤视图,例如FilteredContact,然后CRM的安全模型仍然适用。