Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come unire molti a molti e mantenere lo stesso importo totale

Penso che dovresti partizionare anche per cte1.AccidentYear, cte1.AccidentMonth .

CASE
WHEN ROW_NUMBER() OVER (PARTITION BY cte1.QuoteID, cte1.PolicyNumbe  cte2.LossYear, cte2.AccidentMonth ORDER BY (SELECT 0))=1 THEN cte1.PaidLosses 
ELSE 0
END  as PaidLosses.

Il risultato sarebbe:

QuoteId PolicyNumber    AccidentYear    AccidentMonth   ClassCode   

PaidLosses
191289  PACA1001776-0   2015    4   50228   26657
191289  PACA1001776-0   2015    4   67228   0
191289  PACA1001776-0   2015    9   50228   16718
191289  PACA1001776-0   2015    9   67228   0
191289  PACA1001776-0   2016    1   50228   3445
191289  PACA1001776-0   2016    1   67228   0

È quello che ti serve?