Я новичок в SQL (в Salesforce), и у меня есть некоторые проблемы с запросом. Я хочу, чтобы клиент получил последний проданный товар, для каждого пользователя. («Последняя продажа Джона была для клиента Джейн»).Получение имен, основанных на дате и пользователе
Мы построили все вокруг объекта Opportunity. Если объект возможности поставлен как «закрытый выигранный», он считается проданным. Следовательно, мой подход состоит в том, чтобы найти объекты с «самой высокой» датой для каждого продавца, который ставится как «закрытый выигранный». После этого я нахожу клиента объекта, который связан с датой, которую я нашел. Однако это не работает.
SELECT o1.CustomerName
FROM Opportunity o1
WHERE o1.CloseDate IN(
SELECT MAX(o2.CloseDate)
FROM Opportunity o2
WHERE o2.StageName = 'Closed Won'
GROUP BY o2.UserId)
Внутренний запрос сам создает список с точной «последней датой закрытия» для каждого пользователя. таблицы у меня есть это, сильно упрощены:
Opportunity(CustomerName, StageName, CloseDate, UserId)
User(UserId, UserName)
Кто-нибудь есть какие-либо идеи о правильном запросе или лучший подход?
Похоже, что вам нужен коррелированный подзапрос. Включите в него условие o1! – jarlh
Salesforce не использует SQL, если вы не используете WSDL. Вы ищете SOQL, который сильно отличается от SQL – coder32