Я пытаюсь запросить приведенные ниже примеры данных, где, если RowNum = 1 или ToUse = X. Однако мне нужно добавить дополнительное условие, если у учетной записи есть оба значения (пример в красном квадрате), а затем установить приоритет для столбца "ToUse ", в приведенном ниже примере учетная запись с идентификатором 6 имеет 6 записей:
- 3 для обслуживания имущества - 19734
- 3 для обслуживания имущества - 19733
Я хочу, чтобы результат запроса отклонил 3 значения для обслуживания свойства - 19734
Ниже этого изображения используется текущий запрос, который я использую
SELECT
Id,
OpportunityId,
OpportunityName,
OpportunityStage,
Email,
RowNum,
CreatedDate,
ToUse,
FirstName,
LastName,
Mobile,
AccountName,
AccOppotunityInProgress,
AccTotalLoanPaid,
AccTotalClosedLost,
TotalOppsLoanFunded,
Useractive,
EmailOptOut,
AccountID
FROM (
SELECT
con.Id AS [Id],
opp.Id AS [OpportunityId],
acc.Id AS [AccountID],
opp.Name AS [OpportunityName],
opp.CreatedDate AS [CreatedDate],
opp.StageName AS [OpportunityStage],
con.FirstName AS [FirstName],
con.LastName AS [LastName],
con.MobilePhone AS [Mobile],
con.Useractive__c AS [Useractive],
con.Email AS [Email],
con.HasOptedOutOfEmail AS [EmailOptOut],
acc.Name AS [AccountName],
acc.Total_Opportunities_in_Progress__c AS [AccOppotunityInProgress],
acc.Total_Loan_Paid__c AS [AccTotalLoanPaid],
acc.Total_Closed_Lost__c AS [AccTotalClosedLost],
opp.Total_Opportunities_Loan_Funded__c AS [TotalOppsLoanFunded],
CASE WHEN opp.StageName = 'Loan Funded'
THEN 'X'
ELSE 'FU'
END AS ToUse,
row_number() OVER(PARTITION BY opp_con_role.ContactId ORDER BY opp.CreatedDate DESC) AS RowNum
From [Opportunitycontactrole] Opp_Con_Role
INNER JOIN [Opportunity] opp
On Opp_Con_Role.Opportunityid = Opp.Id
INNER JOIN [Contact] con
On Opp_Con_Role.Contactid = Con.Id
INNER JOIN [account] acc
ON acc.Id = opp.AccountId
WHERE con.Email IS NOT NULL OR con.MobilePhone IS NOT NULL
) sr ORDER BY sr.OpportunityName
Это схема таблиц
Ожидаемые результаты будут в таблице ниже без строк, которыебыли выделены желтым цветом: (строки 14 -17 также должны были выделены yello)
РЕДАКТИРОВАТЬ: Когда я добавляю этот раздел, я получаю следующеерезультат, который так близок к тому, что я хочу, однако запись сстоимость этапа запрашиваемых документов должна быть 1
ROW_NUMBER() OVER (PARTITION BY opp_con_role.ContactId ORDER BY CASE WHEN opp.StageName = 'Loan Funded' THEN 1 ELSE 2 END, opp.CreatedDate DESC) AS RowNum