私は2つのデータセットを持っています。左データセットは同じQuoteID、PolicyNumberを持ちますが、年、月、および有料損失が異なる場合があります。 2番目のデータセットには異なるQuoteID、異なる年のPolicyNumber、異なる月があり、複数のClassCodeでもかまいません。 私は最初のデータセットと2番目のデータセットを結合し、同じPaidLossを保持する必要があります。主な目標は、月ごとに同じ総支払額を維持することです。私はおそらくそれほどビジネスには適していないと知っていますが、それは上司が見たいものです。多くの人に参加して同じ総額を保つ方法
select
cte1.PolicyNumber,
AccidentYear,
AccidentMonth,
cte2.ClassCode,
/*
Using ROW_NUMBER() to check if it's the first record in the join and returns
the PaidLosses value if so, otherwise it will display 0. The ORDER BY (SELECT 0)
is there just because I don't need the row number to be based on any explicit
order.
*/
CASE
WHEN ROW_NUMBER() OVER (PARTITION BY cte1.QuoteID, cte1.PolicyNumber ORDER BY (SELECT 0))=1 THEN cte1.PaidLosses
ELSE 0
END as PaidLosses
from cte1 inner join cte2 on cte1.PolicyNumber=cte2.PolicyNumber AND cte1.QuoteID=cte2.QuoteID AND cte1.AccidentYear=cte2.LossYear
AND cte1.AccidentMonth=cte2.LossMonth
しかし、いくつかの理由では、ポリシーのいくつかをピックアップしdoesntの:
これは私がこれまで試したものです。 は、理想的には私はそのようなものを見たい: が最初の行、 上の損失を支払ったが、ClassCodeが同じポリシーのために繰り返される場合は、その後、QuoteID、年と月が、その後0
ありがとうございました!!!!! – Oleg
あなたは歓迎です:) –