79447815

Date: 2025-02-18 10:04:13
Score: 0.5
Natty:
Report link

Depending on on how all your data looks like maybe this could be a solution?

with data([DWKey],[OriginalSalesLeadId],[OpportunityStage],[LeadStage],[PreviousStages]) as(
select 107309,20240220,NULL,'SAL',NULL
union all
select 109442,20240220,'Lost',NULL,NULL
union all
select 111224,20240220,'Lost',NULL,NULL
union all
select 111458,20240220,'Lost',NULL,NULL
union all
select 111730,20240220,'Lost',NULL,NULL
union all
select 111983,20240220,'Lost',NULL,NULL
union all
select 113011,20240220,'Lost',NULL,NULL
)
SELECT [DWKey]
  , [OriginalSalesLeadId]
  , [OriginalSalesLeadId]
   , [LeadStage]
  , [OpportunityStage]
 
  , CASE WHEN [OpportunityStage] IS NOT NULL
  THEN LAG(COALESCE(OpportunityStage, LeadStage), 1, COALESCE(OpportunityStage, LeadStage))
    OVER (PARTITION BY originalSalesLeadId ORDER BY DWkey)
  ELSE NULL END AS PreviousStage
  ,FIRST_VALUE(COALESCE(LeadStage, OpportunityStage)) 
        OVER (PARTITION BY OriginalSalesLeadId ORDER BY DWKey) AS PreviousStage2
FROM data
WHERE OriginalSalesLeadId = 20240220

Gives the output

DWKey   OriginalSalesLeadId OriginalSalesLeadId LeadStage   OpportunityStage    PreviousStage   PreviousStage2
107309  20240220    20240220    SAL NULL    NULL    SAL
109442  20240220    20240220    NULL    Lost    SAL SAL
111224  20240220    20240220    NULL    Lost    Lost    SAL
111458  20240220    20240220    NULL    Lost    Lost    SAL
111730  20240220    20240220    NULL    Lost    Lost    SAL
111983  20240220    20240220    NULL    Lost    Lost    SAL
113011  20240220    20240220    NULL    Lost    Lost    SAL
Reasons:
  • Long answer (-1):
  • Has code block (-0.5):
  • Ends in question mark (2):
Posted by: W_O_L_F