|
2 | 2 |
|
3 | 3 | -- Fixing uspConsumeEnrollments stored procedure |
4 | 4 |
|
5 | | -/****** Object: StoredProcedure [dbo].[uspConsumeEnrollments] Script Date: 21/02/2020 14:06:21 ******/ |
| 5 | +/****** Object: StoredProcedure [dbo].[uspConsumeEnrollments] ******/ |
6 | 6 | SET ANSI_NULLS ON |
7 | 7 | GO |
8 | 8 | SET QUOTED_IDENTIFIER ON |
9 | 9 | GO |
10 | 10 |
|
11 | | - |
12 | | - |
13 | 11 | ALTER PROCEDURE [dbo].[uspConsumeEnrollments]( |
14 | 12 | --@File NVARCHAR(300), |
15 | 13 | @XML XML, |
@@ -963,3 +961,359 @@ ALTER PROCEDURE [dbo].[uspConsumeEnrollments]( |
963 | 961 | END |
964 | 962 |
|
965 | 963 | GO |
| 964 | + |
| 965 | + |
| 966 | +-- Fixing uspSSRSCapitationPayment stored procedure |
| 967 | + |
| 968 | + |
| 969 | +/****** Object: StoredProcedure [dbo].[uspSSRSCapitationPayment] ******/ |
| 970 | +SET ANSI_NULLS ON |
| 971 | +GO |
| 972 | +SET QUOTED_IDENTIFIER ON |
| 973 | +GO |
| 974 | + |
| 975 | +ALTER PROCEDURE [dbo].[uspSSRSCapitationPayment] |
| 976 | + |
| 977 | +( |
| 978 | + @RegionId INT = NULL, |
| 979 | + @DistrictId INT = NULL, |
| 980 | + @ProdId INT, |
| 981 | + @Year INT, |
| 982 | + @Month INT, |
| 983 | + @HFLevel xAttributeV READONLY |
| 984 | +) |
| 985 | +AS |
| 986 | +BEGIN |
| 987 | + |
| 988 | +DECLARE @Level1 CHAR(1) = NULL, |
| 989 | + @Sublevel1 CHAR(1) = NULL, |
| 990 | + @Level2 CHAR(1) = NULL, |
| 991 | + @Sublevel2 CHAR(1) = NULL, |
| 992 | + @Level3 CHAR(1) = NULL, |
| 993 | + @Sublevel3 CHAR(1) = NULL, |
| 994 | + @Level4 CHAR(1) = NULL, |
| 995 | + @Sublevel4 CHAR(1) = NULL, |
| 996 | + @ShareContribution DECIMAL(5, 2), |
| 997 | + @WeightPopulation DECIMAL(5, 2), |
| 998 | + @WeightNumberFamilies DECIMAL(5, 2), |
| 999 | + @WeightInsuredPopulation DECIMAL(5, 2), |
| 1000 | + @WeightNumberInsuredFamilies DECIMAL(5, 2), |
| 1001 | + @WeightNumberVisits DECIMAL(5, 2), |
| 1002 | + @WeightAdjustedAmount DECIMAL(5, 2) |
| 1003 | + |
| 1004 | + DECLARE @FirstDay DATE = CAST(@Year AS VARCHAR(4)) + '-' + CAST(@Month AS VARCHAR(2)) + '-01'; |
| 1005 | + DECLARE @LastDay DATE = EOMONTH(CAST(@Year AS VARCHAR(4)) + '-' + CAST(@Month AS VARCHAR(2)) + '-01', 0) |
| 1006 | + DECLARE @DaysInMonth INT = DATEDIFF(DAY,@FirstDay,DATEADD(MONTH,1,@FirstDay)); |
| 1007 | + |
| 1008 | + set @DistrictId = CASE @DistrictId WHEN 0 THEN NULL ELSE @DistrictId END |
| 1009 | + |
| 1010 | + SELECT @Level1 = Level1, @Sublevel1 = Sublevel1, @Level2 = Level2, @Sublevel2 = Sublevel2, @Level3 = Level3, @Sublevel3 = Sublevel3, |
| 1011 | + @Level4 = Level4, @Sublevel4 = Sublevel4, @ShareContribution = ISNULL(ShareContribution, 0), @WeightPopulation = ISNULL(WeightPopulation, 0), |
| 1012 | + @WeightNumberFamilies = ISNULL(WeightNumberFamilies, 0), @WeightInsuredPopulation = ISNULL(WeightInsuredPopulation, 0), @WeightNumberInsuredFamilies = ISNULL(WeightNumberInsuredFamilies, 0), |
| 1013 | + @WeightNumberVisits = ISNULL(WeightNumberVisits, 0), @WeightAdjustedAmount = ISNULL(WeightAdjustedAmount, 0) |
| 1014 | + FROM tblProduct Prod |
| 1015 | + WHERE ProdId = @ProdId; |
| 1016 | + |
| 1017 | + |
| 1018 | + PRINT @ShareContribution |
| 1019 | + PRINT @WeightPopulation |
| 1020 | + PRINT @WeightNumberFamilies |
| 1021 | + PRINT @WeightInsuredPopulation |
| 1022 | + PRINT @WeightNumberInsuredFamilies |
| 1023 | + PRINT @WeightNumberVisits |
| 1024 | + PRINT @WeightAdjustedAmount |
| 1025 | + |
| 1026 | + |
| 1027 | + DECLARE @TotalPopFam TABLE ( |
| 1028 | + HFID INT, |
| 1029 | + TotalPopulation DECIMAL(18, 6), |
| 1030 | + TotalFamilies DECIMAL(18, 6) |
| 1031 | + ); |
| 1032 | + |
| 1033 | + INSERT INTO @TotalPopFam |
| 1034 | + |
| 1035 | + SELECT C.HFID HFID , |
| 1036 | + CASE WHEN ISNULL(@DistrictId, @RegionId) IN (R.RegionId, D.DistrictId) THEN 1 ELSE 0 END * SUM((ISNULL(L.MalePopulation, 0) + ISNULL(L.FemalePopulation, 0) + ISNULL(L.OtherPopulation, 0)) *(0.01* Catchment)) TotalPopulation, |
| 1037 | + CASE WHEN ISNULL(@DistrictId, @RegionId) IN (R.RegionId, D.DistrictId) THEN 1 ELSE 0 END * SUM(ISNULL(((L.Families)*(0.01* Catchment)), 0))TotalFamilies |
| 1038 | + FROM tblHFCatchment C |
| 1039 | + LEFT JOIN tblLocations L ON L.LocationId = C.LocationId |
| 1040 | + INNER JOIN tblHF HF ON C.HFID = HF.HfID |
| 1041 | + INNER JOIN tblDistricts D ON HF.LocationId = D.DistrictId |
| 1042 | + INNER JOIN tblRegions R ON D.Region = R.RegionId |
| 1043 | + WHERE C.ValidityTo IS NULL |
| 1044 | + AND L.ValidityTo IS NULL |
| 1045 | + AND HF.ValidityTo IS NULL |
| 1046 | + GROUP BY C.HFID, D.DistrictId, R.RegionId |
| 1047 | + |
| 1048 | + |
| 1049 | + |
| 1050 | + DECLARE @InsuredInsuree TABLE ( |
| 1051 | + HFID INT, |
| 1052 | + ProdId INT, |
| 1053 | + TotalInsuredInsuree DECIMAL(18, 6) |
| 1054 | + ); |
| 1055 | + |
| 1056 | + INSERT INTO @InsuredInsuree |
| 1057 | + |
| 1058 | + SELECT HC.HFID, @ProdId ProdId, COUNT(DISTINCT IP.InsureeId)*(0.01 * Catchment) TotalInsuredInsuree |
| 1059 | + FROM tblInsureePolicy IP |
| 1060 | + INNER JOIN tblInsuree I ON I.InsureeId = IP.InsureeId |
| 1061 | + INNER JOIN tblFamilies F ON F.FamilyId = I.FamilyId |
| 1062 | + INNER JOIN tblHFCatchment HC ON HC.LocationId = F.LocationId |
| 1063 | + INNER JOIN tblPolicy PL ON PL.PolicyID = IP.PolicyId |
| 1064 | + WHERE HC.ValidityTo IS NULL |
| 1065 | + AND I.ValidityTo IS NULL |
| 1066 | + AND IP.ValidityTo IS NULL |
| 1067 | + AND F.ValidityTo IS NULL |
| 1068 | + AND PL.ValidityTo IS NULL |
| 1069 | + AND IP.EffectiveDate <= @LastDay |
| 1070 | + AND IP.ExpiryDate > @LastDay |
| 1071 | + AND PL.ProdID = @ProdId |
| 1072 | + GROUP BY HC.HFID, Catchment--, L.LocationId |
| 1073 | + |
| 1074 | + |
| 1075 | + |
| 1076 | + |
| 1077 | + DECLARE @InsuredFamilies TABLE ( |
| 1078 | + HFID INT, |
| 1079 | + TotalInsuredFamilies DECIMAL(18, 6) |
| 1080 | + ); |
| 1081 | + |
| 1082 | + INSERT INTO @InsuredFamilies |
| 1083 | + SELECT HC.HFID, COUNT(DISTINCT F.FamilyID)*(0.01 * Catchment) TotalInsuredFamilies |
| 1084 | + FROM tblInsureePolicy IP |
| 1085 | + INNER JOIN tblInsuree I ON I.InsureeId = IP.InsureeId |
| 1086 | + INNER JOIN tblFamilies F ON F.InsureeID = I.InsureeID |
| 1087 | + INNER JOIN tblHFCatchment HC ON HC.LocationId = F.LocationId |
| 1088 | + INNER JOIN tblPolicy PL ON PL.PolicyID = IP.PolicyId |
| 1089 | + WHERE HC.ValidityTo IS NULL |
| 1090 | + AND I.ValidityTo IS NULL |
| 1091 | + AND IP.ValidityTo IS NULL |
| 1092 | + AND F.ValidityTo IS NULL |
| 1093 | + AND PL.ValidityTo IS NULL |
| 1094 | + AND IP.EffectiveDate <= @LastDay |
| 1095 | + AND IP.ExpiryDate > @LastDay |
| 1096 | + AND PL.ProdID = @ProdId |
| 1097 | + GROUP BY HC.HFID, Catchment--, L.LocationId |
| 1098 | + |
| 1099 | + |
| 1100 | + |
| 1101 | + DECLARE @Claims TABLE ( |
| 1102 | + HFID INT, |
| 1103 | + TotalClaims INT |
| 1104 | + ); |
| 1105 | + |
| 1106 | + INSERT INTO @Claims |
| 1107 | + SELECT C.HFID, COUNT(C.ClaimId)TotalClaims |
| 1108 | + FROM tblClaim C |
| 1109 | + INNER JOIN ( |
| 1110 | + SELECT ClaimId FROM tblClaimItems WHERE ProdId = @ProdId AND ValidityTo IS NULL |
| 1111 | + UNION |
| 1112 | + SELECT ClaimId FROM tblClaimServices WHERE ProdId = @ProdId AND ValidityTo IS NULL |
| 1113 | + ) CProd ON CProd.ClaimID = C.ClaimID |
| 1114 | + WHERE C.ValidityTo IS NULL |
| 1115 | + AND C.ClaimStatus >= 8 |
| 1116 | + AND YEAR(C.DateProcessed) = @Year |
| 1117 | + AND MONTH(C.DateProcessed) = @Month |
| 1118 | + GROUP BY C.HFID |
| 1119 | + |
| 1120 | + DECLARE @ClaimValues TABLE ( |
| 1121 | + HFID INT, |
| 1122 | + ProdId INT, |
| 1123 | + TotalAdjusted DECIMAL(18, 6) |
| 1124 | + ); |
| 1125 | + |
| 1126 | + INSERT INTO @ClaimValues |
| 1127 | + SELECT HFID, @ProdId ProdId, SUM(PriceValuated)TotalAdjusted |
| 1128 | + FROM( |
| 1129 | + SELECT C.HFID, CValue.PriceValuated |
| 1130 | + FROM tblClaim C |
| 1131 | + INNER JOIN ( |
| 1132 | + SELECT ClaimId, PriceValuated FROM tblClaimItems WHERE ValidityTo IS NULL AND ProdId = @ProdId |
| 1133 | + UNION ALL |
| 1134 | + SELECT ClaimId, PriceValuated FROM tblClaimServices WHERE ValidityTo IS NULL AND ProdId = @ProdId |
| 1135 | + ) CValue ON CValue.ClaimID = C.ClaimID |
| 1136 | + WHERE C.ValidityTo IS NULL |
| 1137 | + AND C.ClaimStatus >= 8 |
| 1138 | + AND YEAR(C.DateProcessed) = @Year |
| 1139 | + AND MONTH(C.DateProcessed) = @Month |
| 1140 | + )CValue |
| 1141 | + GROUP BY HFID |
| 1142 | + |
| 1143 | + DECLARE @Locations TABLE ( |
| 1144 | + LocationId INT, |
| 1145 | + LocationName VARCHAR(MAX), |
| 1146 | + ParentLocationId INT |
| 1147 | + ); |
| 1148 | + |
| 1149 | + INSERT INTO @Locations |
| 1150 | + SELECT 0 LocationId, N'National' LocationName, NULL ParentLocationId |
| 1151 | + |
| 1152 | + UNION ALL |
| 1153 | + |
| 1154 | + SELECT LocationId,LocationName, ISNULL(ParentLocationId, 0) |
| 1155 | + FROM tblLocations |
| 1156 | + WHERE ValidityTo IS NULL |
| 1157 | + AND (LocationId = ISNULL(@DistrictId, @RegionId) OR |
| 1158 | + (LocationType IN ('R', 'D') AND ParentLocationId = ISNULL(@DistrictId, @RegionId))) |
| 1159 | + |
| 1160 | + /*UNION ALL |
| 1161 | + |
| 1162 | + SELECT L.LocationId, L.LocationName, L.ParentLocationId |
| 1163 | + FROM tblLocations L |
| 1164 | + INNER JOIN @Locations LC ON @LC.LocationId = L.ParentLocationId |
| 1165 | + WHERE L.validityTo IS NULL |
| 1166 | + AND L.LocationType IN ('R', 'D')*/ |
| 1167 | + |
| 1168 | + DECLARE @Allocation TABLE ( |
| 1169 | + ProdId INT, |
| 1170 | + Allocated DECIMAL(18, 6) |
| 1171 | + ); |
| 1172 | + |
| 1173 | + INSERT INTO @Allocation |
| 1174 | + SELECT ProdId, CAST(SUM(ISNULL(Allocated, 0)) AS DECIMAL(18, 6)) Allocated |
| 1175 | + FROM |
| 1176 | + (SELECT PL.ProdID, |
| 1177 | + CASE |
| 1178 | + WHEN MONTH(DATEADD(D,-1,PL.ExpiryDate)) = @Month AND YEAR(DATEADD(D,-1,PL.ExpiryDate)) = @Year AND (DAY(PL.ExpiryDate)) > 1 |
| 1179 | + THEN CASE WHEN DATEDIFF(D,CASE WHEN PR.PayDate < @FirstDay THEN @FirstDay ELSE PR.PayDate END,PL.ExpiryDate) = 0 THEN 1 ELSE DATEDIFF(D,CASE WHEN PR.PayDate < @FirstDay THEN @FirstDay ELSE PR.PayDate END,PL.ExpiryDate) END * ((SUM(PR.Amount))/(CASE WHEN (DATEDIFF(DAY,CASE WHEN PR.PayDate < PL.EffectiveDate THEN PL.EffectiveDate ELSE PR.PayDate END,PL.ExpiryDate)) <= 0 THEN 1 ELSE DATEDIFF(DAY,CASE WHEN PR.PayDate < PL.EffectiveDate THEN PL.EffectiveDate ELSE PR.PayDate END,PL.ExpiryDate) END)) |
| 1180 | + WHEN MONTH(CASE WHEN PR.PayDate < PL.EffectiveDate THEN PL.EffectiveDate ELSE PR.PayDate END) = @Month AND YEAR(CASE WHEN PR.PayDate < PL.EffectiveDate THEN PL.EffectiveDate ELSE PR.PayDate END) = @Year |
| 1181 | + THEN ((@DaysInMonth + 1 - DAY(CASE WHEN PR.PayDate < PL.EffectiveDate THEN PL.EffectiveDate ELSE PR.PayDate END)) * ((SUM(PR.Amount))/CASE WHEN DATEDIFF(DAY,CASE WHEN PR.PayDate < PL.EffectiveDate THEN PL.EffectiveDate ELSE PR.PayDate END,PL.ExpiryDate) <= 0 THEN 1 ELSE DATEDIFF(DAY,CASE WHEN PR.PayDate < PL.EffectiveDate THEN PL.EffectiveDate ELSE PR.PayDate END,PL.ExpiryDate) END)) |
| 1182 | + WHEN PL.EffectiveDate < @FirstDay AND PL.ExpiryDate > @LastDay AND PR.PayDate < @FirstDay |
| 1183 | + THEN @DaysInMonth * (SUM(PR.Amount)/CASE WHEN (DATEDIFF(DAY,CASE WHEN PR.PayDate < PL.EffectiveDate THEN PL.EffectiveDate ELSE PR.PayDate END,DATEADD(D,-1,PL.ExpiryDate))) <= 0 THEN 1 ELSE DATEDIFF(DAY,CASE WHEN PR.PayDate < PL.EffectiveDate THEN PL.EffectiveDate ELSE PR.PayDate END,PL.ExpiryDate) END) |
| 1184 | + END Allocated |
| 1185 | + FROM tblPremium PR |
| 1186 | + INNER JOIN tblPolicy PL ON PR.PolicyID = PL.PolicyID |
| 1187 | + INNER JOIN tblProduct Prod ON Prod.ProdId = PL.ProdID |
| 1188 | + INNER JOIN @Locations L ON ISNULL(Prod.LocationId, 0) = L.LocationId |
| 1189 | + WHERE PR.ValidityTo IS NULL |
| 1190 | + AND PL.ValidityTo IS NULL |
| 1191 | + AND PL.ProdID = @ProdId |
| 1192 | + AND PL.PolicyStatus <> 1 |
| 1193 | + AND PR.PayDate <= PL.ExpiryDate |
| 1194 | + GROUP BY PL.ProdID, PL.ExpiryDate, PR.PayDate,PL.EffectiveDate)Alc |
| 1195 | + GROUP BY ProdId |
| 1196 | + |
| 1197 | + |
| 1198 | + DECLARE @ReportData TABLE ( |
| 1199 | + RegionCode VARCHAR(MAX), |
| 1200 | + RegionName VARCHAR(MAX), |
| 1201 | + DistrictCode VARCHAR(MAX), |
| 1202 | + DistrictName VARCHAR(MAX), |
| 1203 | + HFCode VARCHAR(MAX), |
| 1204 | + HFName VARCHAR(MAX), |
| 1205 | + AccCode VARCHAR(MAX), |
| 1206 | + HFLevel VARCHAR(MAX), |
| 1207 | + HFSublevel VARCHAR(MAX), |
| 1208 | + TotalPopulation DECIMAL(18, 6), |
| 1209 | + TotalFamilies DECIMAL(18, 6), |
| 1210 | + TotalInsuredInsuree DECIMAL(18, 6), |
| 1211 | + TotalInsuredFamilies DECIMAL(18, 6), |
| 1212 | + TotalClaims DECIMAL(18, 6), |
| 1213 | + TotalAdjusted DECIMAL(18, 6), |
| 1214 | + |
| 1215 | + PaymentCathment DECIMAL(18, 6), |
| 1216 | + AlcContriPopulation DECIMAL(18, 6), |
| 1217 | + AlcContriNumFamilies DECIMAL(18, 6), |
| 1218 | + AlcContriInsPopulation DECIMAL(18, 6), |
| 1219 | + AlcContriInsFamilies DECIMAL(18, 6), |
| 1220 | + AlcContriVisits DECIMAL(18, 6), |
| 1221 | + AlcContriAdjustedAmount DECIMAL(18, 6), |
| 1222 | + UPPopulation DECIMAL(18, 6), |
| 1223 | + UPNumFamilies DECIMAL(18, 6), |
| 1224 | + UPInsPopulation DECIMAL(18, 6), |
| 1225 | + UPInsFamilies DECIMAL(18, 6), |
| 1226 | + UPVisits DECIMAL(18, 6), |
| 1227 | + UPAdjustedAmount DECIMAL(18, 6) |
| 1228 | + |
| 1229 | + |
| 1230 | + ); |
| 1231 | + |
| 1232 | + |
| 1233 | + INSERT INTO @ReportData |
| 1234 | + SELECT L.RegionCode, L.RegionName, L.DistrictCode, L.DistrictName, HF.HFCode, HF.HFName, Hf.AccCode, |
| 1235 | + HL.Name HFLevel, |
| 1236 | + SL.HFSublevelDesc HFSublevel, |
| 1237 | + PF.[TotalPopulation] TotalPopulation, PF.TotalFamilies TotalFamilies, II.TotalInsuredInsuree, IFam.TotalInsuredFamilies, C.TotalClaims, CV.TotalAdjusted |
| 1238 | + ,( |
| 1239 | + ISNULL(ISNULL(PF.[TotalPopulation], 0) * (A.Allocated * (0.01 * @ShareContribution) * (0.01 * @WeightPopulation)) / NULLIF(SUM(PF.[TotalPopulation])OVER(),0),0) |
| 1240 | + + ISNULL(ISNULL(PF.TotalFamilies, 0) * (A.Allocated * (0.01 * @ShareContribution) * (0.01 * @WeightNumberFamilies)) /NULLIF(SUM(PF.[TotalFamilies])OVER(),0),0) |
| 1241 | + + ISNULL(ISNULL(II.TotalInsuredInsuree, 0) * (A.Allocated * (0.01 * @ShareContribution) * (0.01 * @WeightInsuredPopulation)) /NULLIF(SUM(II.TotalInsuredInsuree)OVER(),0),0) |
| 1242 | + + ISNULL(ISNULL(IFam.TotalInsuredFamilies, 0) * (A.Allocated * (0.01 * @ShareContribution) * (0.01 * @WeightNumberInsuredFamilies)) /NULLIF(SUM(IFam.TotalInsuredFamilies)OVER(),0),0) |
| 1243 | + + ISNULL(ISNULL(C.TotalClaims, 0) * (A.Allocated * (0.01 * @ShareContribution) * (0.01 * @WeightNumberVisits)) /NULLIF(SUM(C.TotalClaims)OVER() ,0),0) |
| 1244 | + + ISNULL(ISNULL(CV.TotalAdjusted, 0) * (A.Allocated * (0.01 * @ShareContribution) * (0.01 * @WeightAdjustedAmount)) /NULLIF(SUM(CV.TotalAdjusted)OVER(),0),0) |
| 1245 | + |
| 1246 | + ) PaymentCathment |
| 1247 | + |
| 1248 | + , A.Allocated * (0.01 * @WeightPopulation) * (0.01 * @ShareContribution) AlcContriPopulation |
| 1249 | + , A.Allocated * (0.01 * @WeightNumberFamilies) * (0.01 * @ShareContribution) AlcContriNumFamilies |
| 1250 | + , A.Allocated * (0.01 * @WeightInsuredPopulation) * (0.01 * @ShareContribution) AlcContriInsPopulation |
| 1251 | + , A.Allocated * (0.01 * @WeightNumberInsuredFamilies) * (0.01 * @ShareContribution) AlcContriInsFamilies |
| 1252 | + , A.Allocated * (0.01 * @WeightNumberVisits) * (0.01 * @ShareContribution) AlcContriVisits |
| 1253 | + , A.Allocated * (0.01 * @WeightAdjustedAmount) * (0.01 * @ShareContribution) AlcContriAdjustedAmount |
| 1254 | + |
| 1255 | + , ISNULL((A.Allocated * (0.01 * @WeightPopulation) * (0.01 * @ShareContribution))/ NULLIF(SUM(PF.[TotalPopulation]) OVER(),0),0) UPPopulation |
| 1256 | + , ISNULL((A.Allocated * (0.01 * @WeightNumberFamilies) * (0.01 * @ShareContribution))/NULLIF(SUM(PF.TotalFamilies) OVER(),0),0) UPNumFamilies |
| 1257 | + , ISNULL((A.Allocated * (0.01 * @WeightInsuredPopulation) * (0.01 * @ShareContribution))/NULLIF(SUM(II.TotalInsuredInsuree) OVER(),0),0) UPInsPopulation |
| 1258 | + , ISNULL((A.Allocated * (0.01 * @WeightNumberInsuredFamilies) * (0.01 * @ShareContribution))/ NULLIF(SUM(IFam.TotalInsuredFamilies) OVER(),0),0) UPInsFamilies |
| 1259 | + , ISNULL((A.Allocated * (0.01 * @WeightNumberVisits) * (0.01 * @ShareContribution)) / NULLIF(SUM(C.TotalClaims) OVER(),0),0) UPVisits |
| 1260 | + , ISNULL((A.Allocated * (0.01 * @WeightAdjustedAmount) * (0.01 * @ShareContribution))/ NULLIF(SUM(CV.TotalAdjusted) OVER(),0),0) UPAdjustedAmount |
| 1261 | + |
| 1262 | + FROM tblHF HF |
| 1263 | + INNER JOIN @HFLevel HL ON HL.Code = HF.HFLevel |
| 1264 | + LEFT OUTER JOIN tblHFSublevel SL ON SL.HFSublevel = HF.HFSublevel |
| 1265 | + LEFT JOIN uvwLocations L ON L.LocationId = HF.LocationId |
| 1266 | + LEFT OUTER JOIN @TotalPopFam PF ON PF.HFID = HF.HfID |
| 1267 | + LEFT OUTER JOIN @InsuredInsuree II ON II.HFID = HF.HfID |
| 1268 | + LEFT OUTER JOIN @InsuredFamilies IFam ON IFam.HFID = HF.HfID |
| 1269 | + LEFT OUTER JOIN @Claims C ON C.HFID = HF.HfID |
| 1270 | + LEFT OUTER JOIN @ClaimValues CV ON CV.HFID = HF.HfID |
| 1271 | + LEFT OUTER JOIN @Allocation A ON A.ProdID = @ProdId |
| 1272 | + |
| 1273 | + WHERE HF.ValidityTo IS NULL |
| 1274 | + AND (((L.RegionId = @RegionId OR @RegionId IS NULL) AND (L.DistrictId = @DistrictId OR @DistrictId IS NULL)) OR CV.ProdID IS NOT NULL OR II.ProdId IS NOT NULL) |
| 1275 | + AND (HF.HFLevel IN (@Level1, @Level2, @Level3, @Level4) OR (@Level1 IS NULL AND @Level2 IS NULL AND @Level3 IS NULL AND @Level4 IS NULL)) |
| 1276 | + AND( |
| 1277 | + ((HF.HFLevel = @Level1 OR @Level1 IS NULL) AND (HF.HFSublevel = @Sublevel1 OR @Sublevel1 IS NULL)) |
| 1278 | + OR ((HF.HFLevel = @Level2 ) AND (HF.HFSublevel = @Sublevel2 OR @Sublevel2 IS NULL)) |
| 1279 | + OR ((HF.HFLevel = @Level3) AND (HF.HFSublevel = @Sublevel3 OR @Sublevel3 IS NULL)) |
| 1280 | + OR ((HF.HFLevel = @Level4) AND (HF.HFSublevel = @Sublevel4 OR @Sublevel4 IS NULL)) |
| 1281 | + ) |
| 1282 | + |
| 1283 | + |
| 1284 | + |
| 1285 | + |
| 1286 | + |
| 1287 | + SELECT MAX (RegionCode)RegionCode, |
| 1288 | + MAX(RegionName)RegionName, |
| 1289 | + MAX(DistrictCode)DistrictCode, |
| 1290 | + MAX(DistrictName)DistrictName, |
| 1291 | + HFCode, |
| 1292 | + MAX(HFName)HFName, |
| 1293 | + MAX(AccCode)AccCode, |
| 1294 | + MAX(HFLevel)HFLevel, |
| 1295 | + MAX(HFSublevel)HFSublevel, |
| 1296 | + ISNULL(SUM([TotalPopulation]),0)[Population], |
| 1297 | + ISNULL(SUM(TotalFamilies),0)TotalFamilies, |
| 1298 | + ISNULL(SUM(TotalInsuredInsuree),0)TotalInsuredInsuree, |
| 1299 | + ISNULL(SUM(TotalInsuredFamilies),0)TotalInsuredFamilies, |
| 1300 | + ISNULL(MAX(TotalClaims), 0)TotalClaims, |
| 1301 | + ISNULL(SUM(AlcContriPopulation),0)AlcContriPopulation, |
| 1302 | + ISNULL(SUM(AlcContriNumFamilies),0)AlcContriNumFamilies, |
| 1303 | + ISNULL(SUM(AlcContriInsPopulation),0)AlcContriInsPopulation, |
| 1304 | + ISNULL(SUM(AlcContriInsFamilies),0)AlcContriInsFamilies, |
| 1305 | + ISNULL(SUM(AlcContriVisits),0)AlcContriVisits, |
| 1306 | + ISNULL(SUM(AlcContriAdjustedAmount),0)AlcContriAdjustedAmount, |
| 1307 | + ISNULL(SUM(UPPopulation),0)UPPopulation, |
| 1308 | + ISNULL(SUM(UPNumFamilies),0)UPNumFamilies, |
| 1309 | + ISNULL(SUM(UPInsPopulation),0)UPInsPopulation, |
| 1310 | + ISNULL(SUM(UPInsFamilies),0)UPInsFamilies, |
| 1311 | + ISNULL(SUM(UPVisits),0)UPVisits, |
| 1312 | + ISNULL(SUM(UPAdjustedAmount),0)UPAdjustedAmount, |
| 1313 | + ISNULL(SUM(PaymentCathment),0)PaymentCathment, |
| 1314 | + ISNULL(SUM(TotalAdjusted),0)TotalAdjusted |
| 1315 | + |
| 1316 | + FROM @ReportData |
| 1317 | + |
| 1318 | + GROUP BY HFCode |
| 1319 | +END |
0 commit comments