当一个条件等于另一个条件但有例外时,我该如何执行循环?

时间:2019-04-22 15:59:35

标签: do-while

虽然会员注册月份等于提供者有效月份,但我想拉出Assignedprovider1以获得该成员的最大提供者有效月份,但是如果注册月份没有找到提供者有效月份,则保留最后一位的allocateprovider1您在整个注册月份中都将其保留下来。

TABLE 1
MemberNbr   ENROLLMENT_MONTH    Desired Outcome ProviderEffectiveDate
ABCD            1/1/2019            A203            20190110
ABCD            2/1/2019            A015            20190208
ABCD            3/1/2019            A015            20190208
ABCD            4/1/2019            A015            20190208
ABCD            5/1/2019            A015            20190208
ABCD            6/1/2019            A015            20190208
ABCD            7/1/2019            A015            20190208
ABCD            8/1/2019            A015            20190208


TABLE 2         
AssignedProvider1   ProviderEffectiveDate   MemberNbr   
A018                    20190108            ABCD    
A203                    20190110            ABCD    
A046                    20190205            ABCD    
A015                    20190208            ABCD    

我尝试在while循环中执行while循环,但无法使其正常工作,我尝试使用等级,但无法弄清楚如何添加其他片段。

select F.MEMBERNBR, F.ELIGIBILITYSTARTDATE, P.PROVIDEREFFECTIVEDATE, P.ASSIGNEDPROVIDER1
INTO #HELPMELORD
,RANK() OVER (PARTITION BY P.PROVIDEREFFECTIVEDATE, P.ASSIGNEDPROVIDER1, P.MEMBERNBR, F.ELIGIBILITYSTARTDATE ORDER BY P.PROVIDEREFFECTIVEDATE DESC) AS 'RANK'
FROM #FINAL F
LEFT JOIN MEMBERPROVIDERHISTORY P ON F.MEMBERNBR = P.MEMBERNBR

我没有任何输出要显示,因为我无法使其正常工作。

0 个答案:

没有答案