Dynamics crm 如何将SQL查询转换为Microsoft.Crm.Sdk类型的查询?

Dynamics crm 如何将SQL查询转换为Microsoft.Crm.Sdk类型的查询?,dynamics-crm,Dynamics Crm,我有一个来自旧Dynamics CRM 4.0的查询,需要在asp.net中为来自Dynamics 365(云)的数据编写一个新查询。我知道如何使用asp.net选择表,但不知道如何使用“group”和“select from select”为更复杂的逻辑创建查询。请给我建议,谢谢 以下是我需要创建的查询: select sub.new_paymentid from (select t.New_paymentId,MONTH(t.New_TransactionDate) as TransM

我有一个来自旧Dynamics CRM 4.0的查询,需要在asp.net中为来自Dynamics 365(云)的数据编写一个新查询。我知道如何使用asp.net选择表,但不知道如何使用“group”和“select from select”为更复杂的逻辑创建查询。请给我建议,谢谢

以下是我需要创建的查询:

select sub.new_paymentid from
(select t.New_paymentId,MONTH(t.New_TransactionDate) as    TransMonth,COUNT(1) as MonthCount                                        
from New_transaction t
inner join New_payment p on t.new_paymentid = p.New_paymentId
where t.New_Status = 4 and (p.New_PaymentStatus != '5' and p.New_PaymentStatus != '6' and p.New_PaymentStatus != '8' )
and (p.new_alreadyfollowup != 1 or p.new_alreadyfollowup is null)
and New_TransactionDate >= convert(nvarchar(5),YEAR(DATEADD(MONTH,-3,New_TransactionDate)))+'-' +convert(nvarchar(5),month(DATEADD(MONTH,-3,New_TransactionDate)))+'-1'
group by t.New_paymentId,MONTH(t.New_TransactionDate)
) sub 
where sub.MonthCount = 2                            
  group by sub.new_paymentid                             
  having COUNT(1) >= 3

不幸的是,您无法在单个CRM fetchxml或查询表达式中实现子查询概念

相反,您可以先使用fetchxml或查询表达式从CRM检索子查询结果集,即EntityCollection。然后使用LINQ或某种C#方式在代码中对其进行过滤/聚合


使用LINQ进行整个查询可能更容易吗?@autopenta在看到可能可以实现直接的LINQ查询后,关于您的数据集和预期结果,这是一个单独的问题。