我知道这将是一个简单的过程,但是在其他编码下进行了午夜运行后,我的SQL大脑被炸了,所以我只是伸出援手寻求快速帮助。我有一个包含代理,代理ID,父帐户,帐户ID和TCV的测试表。我需要做的就是提取所有代理/帐户ID,其中AccountID属于该代理名称> = 10K的汇总父帐户。



因此,在此示例中,John在父帐户ABC123下拥有2个帐户,由于它们的总值> = 10K,所以这2个帐户将被提取。但是请注意,在Jane的下面同样在ABC123下有2个帐户,但是b / c以她的名义计算的总值小于1万,因此不会被撤消。因此结果将是这样的:



通常,我需要提取所有AccountID,在该ID中,他们汇总到该人的父帐户的总值> = 10K。顺便说一句,我正在使用SQL Server Management Studio R2。

最佳答案

您只需要/必须进行一个简单的分组,即可获得符合10k标准的agentid / parentaccounts列表。然后,您可以在子选择中使用它来联接回到同一张表并获取帐户ID列表

select agentid, accountid
from table t
inner join (
  select agentid, parentaccount
  from table
  group by agentid, parentaccount
  having sum(tcv) >= 10000
) t1
  on t.agentid = t1.agentid
     and t.parentaccount = t1.parentaccount

10-05 23:43