#sql #sql-server #salesforce-marketing-cloud
#sql #sql-server #salesforce-маркетинг-облако
Вопрос:
Мне нужно подключить учетные записи к пользователям, и при этом я должен убедиться, что я выбираю правильную учетную запись для обеспечения соответствия требованиям, и сделать это с несколькими учетными записями. Следующий код проходит проверку, но не дает результатов.
У меня уже есть список номеров клиентов в таблице, которые являются PK.
SELECT
x.CustomerNumber,
a.ACC_AccountId
FROM Eligibles x
LEFT JOIN
ACCOUNTS a
ON x.CustomerNumber = a.ACC_CustomerNumber
ORDER BY a.ACC_LIVEcode ASC,
a.ACC_Limit DESC,
a.ACC_Amount DESC
OFFSET 0 ROWS
FETCH FIRST 1 ROWS ONLY
Я не получаю никаких идентификаторов учетной записи для заполнения, тогда как почти у всех должен быть один.
Ответ №1:
При сортировке по возрастанию NULL
s являются первыми. Итак, сначала вы обнаруживаете несоответствия. Вместо этого добавьте выражение, чтобы совпадения были первыми:
SELECT x.CustomerNumber, a.ACC_AccountId
FROM Eligibles x LEFT JOIN
ACCOUNTS a
ON x.CustomerNumber = a.ACC_CustomerNumber
ORDER BY (CASE WHEN ACC_CustomerNumber IS NOT NULL THEN 1 ELSE 0 END),
aa.ACC_LIVEcode ASC, a.ACC_Limit DESC, a.ACC_Amount DESC
OFFSET 0 ROWS
FETCH FIRST 1 ROWS ONLY
Комментарии:
1. Спасибо, я попробовал это, но безуспешно. Я должен также упомянуть, что в этом случае нет нулевых значений, и LiveCode отображает статус этой учетной записи в диапазоне от 1 (Активный) до 9 (неактивный)
2. @Waystone . . .
NULL
Значения берутся изLEFT JOIN
.