如何使用 SOQL 查询输出机会行项目?

问题描述 投票:0回答:1

如果我在 Salesforce 工作台中运行它,我会在 OpportunityLineItems 下得到一行和三行

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

输出看起来像这样 Workbench query output

而我希望输出如下所示 Expected Workbench output

我怎样才能得到预期的输出?我需要更改查询的编写方式吗? 如果可以,我该怎么做?

salesforce soql
1个回答
0
投票

您的查询是“自上而下”编写的,看起来类似于带有标题和相关列表的 Salesforce UI。它的行为有点像:

    SELECT Id, Name,
       (SELECT Id, Name, CloseDate, StageName FROM Opportunities),
       (SELECT Id, Email FROM Contacts),
       (SELECT Id, Subject FROM Tasks)
    FROM Account

想一次性看到header + line items(Orders?Case Comments?)时更有用。很好地组合在一起,即使你会看到 10 个机会。

听起来您更喜欢我们从机会订单项开始的“自下而上”。这没关系 - 但适用于不同的应用程序。使用这种形式,如果您看到属于 10 opps 的线,则检测边界会有点棘手 - 您需要对它们进行排序等。

SELECT Opportunity.Amount, Name, Opportunity.Account.Name,
Opportunity.Account.AccountNumber, Quantity, UnitPrice, ProductCode, Product2.Name
FROM OpportunityLineItem
© www.soinside.com 2019 - 2024. All rights reserved.