0

我正在尝试使用 SOQL从对象Lead中获取计数。当我点击下面提到的查询时,我得到了结果。

select 'Lead' as source_table,count(*) as source_count from Lead

但是当我试图where用这个查询给出条件时,它会抛出错误。

选择 'Lead' 作为 source_table,count() 作为 source_count 从 Lead where CreatedDate > 2020-02-24T09:43:51Z

有什么我想念的吗。

4

1 回答 1

0

您的查询不是有效的 SOQL,您到底是在哪里做的?在真实的 Salesforce(Apex、开发者控制台、Salesforce API)中,或者您是否处理一些导入到 MSSQL 的数据副本?

即使您的基本形式 ( select 'Lead' as source_table,count(*) as source_count from Lead) 在 SOQL 中也无法解析。没有AS关键字,也没有虚拟列。

最接近的是

SELECT COUNT(Id) source_count
FROM Lead
WHERE CreatedDate > 2020-02-24T09:43:51Z

不会有人工列,里面有“Lead”。如果您需要跨多个数据库表的一些键值操作,则必须在 Apex 中处理结果,也许创建一个辅助类来存储结果,也许一个Map<String, Integer>就足够了。但是,如果您将其作为 API 访问,那么更好的主意是访问专用 API

  • getUpdated REST API - 具有“更新”和“删除”版本,如果您真的需要“创建”,除非您稍后以某种方式将它们过滤掉,否则它并不是那么好
  • 跨多个对象的记录计数 - 但它实际上是在表中计数,类似于设置 -> 存储使用情况。无法通过 WHERE 子句
  • 让您的 SF 管理员构建一个满足您需要的报告(您不需要详细信息,只需计数,对吗?),然后使用 Analytics API 访问结果。甚至可以即时生成报告:示例
于 2020-03-03T07:06:45.687 回答