如何总结一个对象相对于一个月的记录

时间:2018-01-23 07:36:07

标签: salesforce apex soql

您好Salesforce专家,

我有一个对象 Monthly_cc__c ,每个国家/地区每月都有记录。 以下是字段

  1. ID是记录ID
  2. 处理日期
  3. 处理年度
  4. 处理月
  5. Distributor__c是与账户的Master-Detal关系船。
  6. 营运公司(IND,AUS,GBR ......)
  7. 现在每条记录都有以下字段

    1. 个人CC
    2. 每月CC
    3. 对于每个运营公司,这些结果都会被发送,并且在相同的处理日期,我们会为不同的运营公司提供各种记录。

      我想总结1月份的个人cc,以免我们的SQL查询复杂化。

      请告诉我们如何完成此任务的解决方案。

      谢谢。

      预期结果将是

      2017年1月

      1. 个人CC =总和(AUS,IND,GBR&S; 39个人CC)
      2. 每月CC =总和(AUS,IND,GBR&S;月度CC)

1 个答案:

答案 0 :(得分:0)

这里有很多选项,最终结果还取决于贵公司是否使用货币管理(所有对象上都有CurrencyIsoCode字段?)。

这应该是你要求的:

SELECT Distributor__c, SUM(Personal_CC__c) personal, SUM(Monthly_CC__c) monthly
FROM Monthly_CC__c
WHERE Processing_Year__c = 2017 AND Processing_Month__c = 1
GROUP BY Distributor__c
LIMIT 200

这应该更灵活一点:

SELECT Distributor__c, Processing_Year__c, Processing_Month__c, SUM(Personal_CC__c) personal, SUM(Monthly_CC__c) monthly
FROM Monthly_CC__c
GROUP BY Distributor__c, Processing_Year__c, Processing_Month__c
LIMIT 200

了解SOQLGROUP BY & aggregate functions, GROUP BY ROLLUP()。 您的数据看起来有点人为地分为日 - 月 - 年。如果您有真实的日期字段,则可以使用GROUP BY CALENDAR_MONTH()

最后但并非最不重要 - 如果此查询结果将在Apex中处理 - 您需要阅读AggregateResult

P.S。你应该解决你的问题。我们不是为您编写代码。你有什么尝试,你被困在哪一部分?如果您对salesforce完全不熟悉,甚至不知道要尝试什么 - 从SQOL-related Trailheads开始