如果我在 Salesforce 工作台中运行它,我会在 OpportunityLineItems 下得到一行和三行
SELECT Amount, Account.Name, Account.AccountNumber, Name,
(
SELECT Quantity, UnitPrice, ProductCode,Product2.Name
FROM OpportunityLineItems
)
FROM Opportunity where Opportunity.Id IN ('07357Jez0204768')
我怎样才能得到预期的输出?我需要更改查询的编写方式吗? 如果可以,我该怎么做?
您的查询是“自上而下”编写的,看起来类似于带有标题和相关列表的 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