You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整SOQL查询以获取扁平化展示的Opportunity Line Items?

如何将Salesforce SOQL嵌套查询结果转为扁平化表格?

我在Salesforce Workbench中执行了以下SOQL查询:

SELECT Amount, Account.Name, Account.AccountNumber, Name,
(
 SELECT Quantity, UnitPrice, ProductCode,Product2.Name
 FROM OpportunityLineItems
)
FROM Opportunity where Opportunity.Id IN ('07357Jez0204768')

当前查询结果里的OpportunityLineItems是以嵌套形式展示的,但我需要结果以扁平化表格形式呈现。请问是否需要修改查询语句?若需要,应如何调整?

附当前返回的JSON格式数据:

{
  "attributes": {
    "type": "Opportunity",
    "url": "/services/data/v57.0/sobjects/Opportunity/q44l3KquPik6xxxxxxxx"
  },
  "Amount": 115.00,
  "AccountId": "ihdvg2cCRj6Dxxxxxxxx",
  "Name": "realtimetest",
  "Id": "q44l3KquPik6xxxxxxxx",
  "OpportunityLineItems": {
    "totalSize": 1,
    "done": true,
    "records": [
      {
        "attributes": {
          "type": "OpportunityLineItem",
          "url": "/services/data/v57.0/sobjects/OpportunityLineItem/IWHHTghK6MA8xxxxxxxx"
        },
        "OpportunityId": "q44l3KquPik6xxxxxxxx",
        "Id": "IWHHTghK6MA8PzX8HQD9",
        "Quantity": 4.00,
        "UnitPrice": 5.00,
        "ProductCode": "product1Code",
        "Product2Id": "MFqTUKEOHojaxxxxxxxx",
        "Product2": {
          "attributes": {
            "type": "Product2",
            "url": "/services/data/v57.0/sobjects/Product2/MFqTUKEOHojaxxxxxxxx"
          },
          "Id": "MFqTUKEOHojaxxxxxxxx",
          "Name": "product1Name"
        }
      }              
    ]
  },
  "Account": {
    "attributes": {
      "type": "Account",
      "url": "/services/data/v57.0/sobjects/Account/ihdvg2cCRj6Dxxxxxxxx"
    },
    "Id": "ihdvg2cCRj6Dxxxxxxxx",
    "Name": "My Test Opp"
  }
}

需要修改查询语句。原查询使用的是子查询(嵌套查询),这种写法会把关联的OpportunityLineItems作为嵌套数组返回,无法直接得到扁平化结果。要实现需求,应该直接从OpportunityLineItem对象出发,通过关联字段反向查询Opportunity和Account的信息,这样每条行项目会单独占据一行,关联的主记录信息会自动重复填充,正好匹配扁平化表格的展示形式。

调整后的SOQL查询:

SELECT 
    Opportunity.Amount, 
    Opportunity.Account.Name, 
    Opportunity.Account.AccountNumber, 
    Opportunity.Name,
    Quantity, 
    UnitPrice, 
    ProductCode, 
    Product2.Name
FROM OpportunityLineItem
WHERE Opportunity.Id IN ('07357Jez0204768')

说明:

  • 以OpportunityLineItem作为查询主体,每条行项目对应一条结果记录
  • 通过Opportunity.字段名的方式获取所属机会的信息,Opportunity.Account.字段名获取关联账户的信息
  • 在Workbench中执行该查询后,会直接返回扁平化的表格,每行对应一个机会行项目,同时带出所属机会和账户的相关字段

内容的提问来源于stack exchange,提问作者Christy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 04:02:50