我正在尝试创建用于报告表的Reneal表。我有一份每年更新的提交清单,大多数情况下政策编号会增加1。
对于每个提交编号,我需要显示当前的政策编号,以前的政策编号和下一个政策编号。
对于帐户的第一个和最后一个策略号,前一个和下一个将为NULL。
我使用此查询的结果:
我希望的结果如下:
我试过这个查询并提供不正确的结果..有关如何从这里开始的任何想法吗?
with CurrentPolicy as
(
select
Region,
SubmissionNumber,
MasterPolicyNumber,
PolicyNumber,
NewRenewal,
Renewable,
DateOfRenewal,
EffectiveDate,
ExpiryDate,
Coverage
from
Policy_Dtl
)
select
CurrentPolicy.SubmissionNumber,
left(PriorPolicy.MasterPolicyNumber, 14) +
right('00' + cast(right(PriorPolicy.MasterPolicyNumber, 2) - 1 as varchar(3)), 2) as Prior_MasterPolicyNumber,
CurrentPolicy.MasterPolicyNumber,
left(NextPolicy.MasterPolicyNumber, 14) +
right('00' + cast(right(NextPolicy.MasterPolicyNumber, 2) + 1 as varchar(3)), 2) as Next_MasterPolicyNumber,
CurrentPolicy.PolicyNumber,
CurrentPolicy.NewRenewal,
CurrentPolicy.Renewable,
CurrentPolicy.DateOfRenewal,
CurrentPolicy.EffectiveDate,
CurrentPolicy.ExpiryDate,
CurrentPolicy.Coverage
from
CurrentPolicy
left join
CurrentPolicy as PriorPolicy on CurrentPolicy.MasterPolicyNumber = PriorPolicy.MasterPolicyNumber
left join
CurrentPolicy as NextPolicy on CurrentPolicy.MasterPolicyNumber = NextPolicy.MasterPolicyNumber
where
CurrentPolicy.MasterPolicyNumber in ('42-XHF-150104-01', '42-PBL-150104-02', '42-EPF-150104-03', '42-EPF-150104-04','42-EPF-150104-05')