CRM如何查找没有活动联系人的帐户

时间:2016-01-14 04:55:22

标签: sql reporting-services crm dynamics-crm-2013

这应该是非常简单的,但我是残局。基本上找到所有没有活动联系人的帐户。因此,所有联系人的帐户都处于非活动状态,或者帐户中没有任何联系人。

我尝试了两种方法,一种是使用左连接进行查询,另一种是使用“不存在”进行查询,但一直没有返回任何内容:

查询1:

SELECT *
  FROM dbo.Account a
WHERE accountid IN (Select accountid FROM Account)
   AND NOT EXISTS 
(Select c.ParentCustomerId FROM dbo.Contact c 
WHERE c.StateCode = 0 
AND c.ParentCustomerId IS NOT NULL)

查询2:

string fm = "yyyy-MM-dd HH:mm:ss.fff";
string str = DateTime.Now.ToString(fm, CultureInfo.InvariantCulture);
DateTime dt = DateTime.ParseExact(str, fm, CultureInfo.InvariantCulture);

2 个答案:

答案 0 :(得分:2)

您的要求转换为:

  • 所有帐户
  • 没有活跃的联系人

会转换为

SELECT
  *
FROM
  dbo.Account a -- all accounts
WHERE
  NOT EXISTS( -- for which no contact exists
    SELECT
      1
    FROM
      dbo.Contact c
    WHERE
      c.ParentCustomerId=a.AccountId AND
      c.StateCode<>0 -- that is active
  );

答案 1 :(得分:0)

您可以尝试以下查询

SELECT ac.accountid,ac.name
FROM account ac
LEFT JOIN contact ca
ON ac.accountid=ca.parentcustomerid
GROUP BY ac.accountid,ac.name
HAVING COUNT(DISTINCT ca.contactid)=0 
OR SUM(CASE WHEN ca.statecode=0 THEN 1 ELSE 0 END)>0