Skip to content

Commit a7e0502

Browse files
committed
OTC-226: In procedure uspSSRSCapitationPayment fixed insert to @LocationTemp
1 parent fc8fdd8 commit a7e0502

2 files changed

Lines changed: 351 additions & 0 deletions

File tree

0 Bytes
Binary file not shown.

Migration script/openIMIS migration latest.sql

Lines changed: 351 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5375,3 +5375,354 @@ BEGIN
53755375
END
53765376
GO
53775377

5378+
IF OBJECT_ID('[uspSSRSCapitationPayment]', 'P') IS NOT NULL
5379+
DROP PROCEDURE [uspSSRSCapitationPayment]
5380+
GO
5381+
CREATE PROCEDURE [dbo].[uspSSRSCapitationPayment]
5382+
(
5383+
@RegionId INT = NULL,
5384+
@DistrictId INT = NULL,
5385+
@ProdId INT,
5386+
@Year INT,
5387+
@Month INT,
5388+
@HFLevel xAttributeV READONLY
5389+
)
5390+
AS
5391+
BEGIN
5392+
5393+
DECLARE @Level1 CHAR(1) = NULL,
5394+
@Sublevel1 CHAR(1) = NULL,
5395+
@Level2 CHAR(1) = NULL,
5396+
@Sublevel2 CHAR(1) = NULL,
5397+
@Level3 CHAR(1) = NULL,
5398+
@Sublevel3 CHAR(1) = NULL,
5399+
@Level4 CHAR(1) = NULL,
5400+
@Sublevel4 CHAR(1) = NULL,
5401+
@ShareContribution DECIMAL(5, 2),
5402+
@WeightPopulation DECIMAL(5, 2),
5403+
@WeightNumberFamilies DECIMAL(5, 2),
5404+
@WeightInsuredPopulation DECIMAL(5, 2),
5405+
@WeightNumberInsuredFamilies DECIMAL(5, 2),
5406+
@WeightNumberVisits DECIMAL(5, 2),
5407+
@WeightAdjustedAmount DECIMAL(5, 2)
5408+
5409+
5410+
DECLARE @FirstDay DATE = CAST(@Year AS VARCHAR(4)) + '-' + CAST(@Month AS VARCHAR(2)) + '-01';
5411+
DECLARE @LastDay DATE = EOMONTH(CAST(@Year AS VARCHAR(4)) + '-' + CAST(@Month AS VARCHAR(2)) + '-01', 0)
5412+
DECLARE @DaysInMonth INT = DATEDIFF(DAY,@FirstDay,DATEADD(MONTH,1,@FirstDay));
5413+
5414+
set @DistrictId = CASE @DistrictId WHEN 0 THEN NULL ELSE @DistrictId END
5415+
5416+
DECLARE @Locations TABLE (
5417+
LocationId INT,
5418+
LocationName VARCHAR(50),
5419+
LocationCode VARCHAR(8),
5420+
ParentLocationId INT
5421+
);
5422+
5423+
INSERT INTO @Locations
5424+
SELECT 0 LocationId, N'National' LocationName, NULL ParentLocationId, 0 LocationCode
5425+
5426+
UNION ALL
5427+
5428+
SELECT LocationId,LocationName, LocationCode, ISNULL(ParentLocationId, 0)
5429+
FROM tblLocations
5430+
WHERE (ValidityTo IS NULL )
5431+
AND (LocationId = ISNULL(@DistrictId, @RegionId) OR
5432+
(LocationType IN ('R', 'D') AND ParentLocationId = ISNULL(@DistrictId, @RegionId)))
5433+
5434+
5435+
DECLARE @LocationTemp table (LocationId int, RegionId int, RegionCode [nvarchar](8) , RegionName [nvarchar](50), DistrictId int, DistrictCode [nvarchar](8),
5436+
DistrictName [nvarchar](50), ParentLocationId int)
5437+
5438+
5439+
INSERT INTO @LocationTemp(LocationId , RegionId , RegionCode , RegionName , DistrictId , DistrictCode ,
5440+
DistrictName , ParentLocationId)( SELECT ISNULL(d.LocationId,r.LocationId) LocationId , r.LocationId as RegionId , r.LocationCode as RegionCode , r.LocationName as RegionName , d.LocationId as DistrictId , d.LocationCode as DistrictCode ,
5441+
d.LocationName as DistrictName , ISNULL(d.ParentLocationId,r.ParentLocationId) ParentLocationId FROM @Locations d INNER JOIN @Locations r on d.ParentLocationId = r.LocationId
5442+
UNION ALL SELECT r.LocationId, r.LocationId as RegionId , r.LocationCode as RegionCode , r.LocationName as RegionName , NULL DistrictId , NULL DistrictCode ,
5443+
NULL DistrictName , ParentLocationId FROM @Locations r WHERE ParentLocationId = 0)
5444+
;
5445+
declare @listOfHF table (id int);
5446+
5447+
IF @RegionId IS NULL or @RegionId =0
5448+
INSERT INTO @listOfHF(id) SELECT tblHF.HfID FROM tblHF WHERE tblHF.ValidityTo is NULL;
5449+
ELSE IF @DistrictId is NULL or @DistrictId =0
5450+
INSERT INTO @listOfHF(id) SELECT tblHF.HfID FROM tblHF JOIN tblLocations l on tblHF.LocationId = l.LocationId WHERE l.ParentLocationId = @RegionId ;
5451+
ELSE
5452+
INSERT INTO @listOfHF(id) SELECT tblHF.HfID FROM tblHF WHERE tblHF.LocationId = @DistrictId and tblHF.ValidityTo is NULL;
5453+
5454+
5455+
SELECT @Level1 = Level1, @Sublevel1 = Sublevel1, @Level2 = Level2, @Sublevel2 = Sublevel2, @Level3 = Level3, @Sublevel3 = Sublevel3,
5456+
@Level4 = Level4, @Sublevel4 = Sublevel4, @ShareContribution = ISNULL(ShareContribution, 0), @WeightPopulation = ISNULL(WeightPopulation, 0),
5457+
@WeightNumberFamilies = ISNULL(WeightNumberFamilies, 0), @WeightInsuredPopulation = ISNULL(WeightInsuredPopulation, 0), @WeightNumberInsuredFamilies = ISNULL(WeightNumberInsuredFamilies, 0),
5458+
@WeightNumberVisits = ISNULL(WeightNumberVisits, 0), @WeightAdjustedAmount = ISNULL(WeightAdjustedAmount, 0)
5459+
FROM tblProduct Prod
5460+
WHERE ProdId = @ProdId;
5461+
5462+
5463+
PRINT @ShareContribution
5464+
PRINT @WeightPopulation
5465+
PRINT @WeightNumberFamilies
5466+
PRINT @WeightInsuredPopulation
5467+
PRINT @WeightNumberInsuredFamilies
5468+
PRINT @WeightNumberVisits
5469+
PRINT @WeightAdjustedAmount
5470+
5471+
5472+
DECLARE @TotalPopFam TABLE (
5473+
HFID INT,
5474+
TotalPopulation DECIMAL(18, 6),
5475+
TotalFamilies DECIMAL(18, 6)
5476+
);
5477+
5478+
INSERT INTO @TotalPopFam
5479+
5480+
SELECT C.HFID HFID ,
5481+
CASE WHEN ISNULL(@DistrictId, @RegionId) IN (D.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,
5482+
CASE WHEN ISNULL(@DistrictId, @RegionId) IN (D.RegionId, D.DistrictId) THEN 1 ELSE 0 END * SUM(ISNULL(((L.Families)*(0.01* Catchment)), 0))TotalFamilies
5483+
FROM tblHFCatchment C
5484+
LEFT JOIN tblLocations L ON L.LocationId = C.LocationId OR L.LegacyId = C.LocationId
5485+
INNER JOIN tblHF HF ON C.HFID = HF.HfID
5486+
INNER JOIN @LocationTemp D ON HF.LocationId = D.DistrictId
5487+
WHERE (C.ValidityTo IS NULL OR C.ValidityTo >= @FirstDay) AND C.ValidityFrom< @FirstDay
5488+
AND(L.ValidityTo IS NULL OR L.ValidityTo >= @FirstDay) AND L.ValidityFrom< @FirstDay
5489+
AND (HF.ValidityTo IS NULL )
5490+
AND C.HFID in (SELECT id FROM @listOfHF)
5491+
GROUP BY C.HFID, D.DistrictId, D.RegionId
5492+
5493+
5494+
5495+
DECLARE @InsuredInsuree TABLE (
5496+
HFID INT,
5497+
ProdId INT,
5498+
TotalInsuredInsuree DECIMAL(18, 6)
5499+
);
5500+
5501+
INSERT INTO @InsuredInsuree
5502+
5503+
SELECT HC.HFID, @ProdId ProdId, COUNT(DISTINCT IP.InsureeId)*(0.01 * Catchment) TotalInsuredInsuree
5504+
FROM tblInsureePolicy IP
5505+
INNER JOIN tblInsuree I ON I.InsureeId = IP.InsureeId
5506+
INNER JOIN tblFamilies F ON F.FamilyId = I.FamilyId
5507+
INNER JOIN tblHFCatchment HC ON HC.LocationId = F.LocationId
5508+
INNER JOIN tblPolicy PL ON PL.PolicyID = IP.PolicyId
5509+
WHERE (HC.ValidityTo IS NULL OR HC.ValidityTo >= @FirstDay) AND HC.ValidityFrom< @FirstDay
5510+
AND I.ValidityTo IS NULL
5511+
AND IP.ValidityTo IS NULL
5512+
AND F.ValidityTo IS NULL
5513+
AND PL.ValidityTo IS NULL
5514+
AND IP.EffectiveDate <= @LastDay
5515+
AND IP.ExpiryDate > @LastDay
5516+
AND PL.ProdID = @ProdId
5517+
AND HC.HFID in (SELECT id FROM @listOfHF)
5518+
GROUP BY HC.HFID, Catchment--, L.LocationId
5519+
5520+
5521+
5522+
5523+
DECLARE @InsuredFamilies TABLE (
5524+
HFID INT,
5525+
TotalInsuredFamilies DECIMAL(18, 6)
5526+
);
5527+
5528+
INSERT INTO @InsuredFamilies
5529+
SELECT HC.HFID, COUNT(DISTINCT F.FamilyID)*(0.01 * Catchment) TotalInsuredFamilies
5530+
FROM tblInsureePolicy IP
5531+
INNER JOIN tblInsuree I ON I.InsureeId = IP.InsureeId
5532+
INNER JOIN tblFamilies F ON F.InsureeID = I.InsureeID
5533+
INNER JOIN tblHFCatchment HC ON HC.LocationId = F.LocationId
5534+
INNER JOIN tblPolicy PL ON PL.PolicyID = IP.PolicyId
5535+
WHERE (HC.ValidityTo IS NULL OR HC.ValidityTo >= @FirstDay) AND HC.ValidityFrom< @FirstDay
5536+
AND I.ValidityTo IS NULL
5537+
AND IP.ValidityTo IS NULL
5538+
AND F.ValidityTo IS NULL
5539+
AND PL.ValidityTo IS NULL
5540+
AND IP.EffectiveDate <= @LastDay
5541+
AND IP.ExpiryDate > @LastDay
5542+
AND PL.ProdID = @ProdId
5543+
AND HC.HFID in (SELECT id FROM @listOfHF)
5544+
GROUP BY HC.HFID, Catchment--, L.LocationId
5545+
5546+
5547+
5548+
5549+
5550+
5551+
DECLARE @Allocation TABLE (
5552+
ProdId INT,
5553+
Allocated DECIMAL(18, 6)
5554+
);
5555+
5556+
INSERT INTO @Allocation
5557+
SELECT ProdId, CAST(SUM(ISNULL(Allocated, 0)) AS DECIMAL(18, 6)) Allocated
5558+
FROM
5559+
(SELECT PL.ProdID,
5560+
CASE
5561+
WHEN MONTH(DATEADD(D,-1,PL.ExpiryDate)) = @Month AND YEAR(DATEADD(D,-1,PL.ExpiryDate)) = @Year AND (DAY(PL.ExpiryDate)) > 1
5562+
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))
5563+
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
5564+
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))
5565+
WHEN PL.EffectiveDate < @FirstDay AND PL.ExpiryDate > @LastDay AND PR.PayDate < @FirstDay
5566+
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)
5567+
END Allocated
5568+
FROM tblPremium PR
5569+
INNER JOIN tblPolicy PL ON PR.PolicyID = PL.PolicyID
5570+
INNER JOIN tblProduct Prod ON Prod.ProdId = PL.ProdID
5571+
INNER JOIN @Locations L ON ISNULL(Prod.LocationId, 0) = L.LocationId
5572+
WHERE PR.ValidityTo IS NULL
5573+
AND PL.ValidityTo IS NULL
5574+
AND PL.ProdID = @ProdId
5575+
AND PL.PolicyStatus <> 1
5576+
AND PR.PayDate <= PL.ExpiryDate
5577+
GROUP BY PL.ProdID, PL.ExpiryDate, PR.PayDate,PL.EffectiveDate)Alc
5578+
GROUP BY ProdId;
5579+
5580+
5581+
DECLARE @ReportData TABLE (
5582+
RegionCode VARCHAR(MAX),
5583+
RegionName VARCHAR(MAX),
5584+
DistrictCode VARCHAR(MAX),
5585+
DistrictName VARCHAR(MAX),
5586+
HFCode VARCHAR(MAX),
5587+
HFName VARCHAR(MAX),
5588+
AccCode VARCHAR(MAX),
5589+
HFLevel VARCHAR(MAX),
5590+
HFSublevel VARCHAR(MAX),
5591+
TotalPopulation DECIMAL(18, 6),
5592+
TotalFamilies DECIMAL(18, 6),
5593+
TotalInsuredInsuree DECIMAL(18, 6),
5594+
TotalInsuredFamilies DECIMAL(18, 6),
5595+
TotalClaims DECIMAL(18, 6),
5596+
TotalAdjusted DECIMAL(18, 6),
5597+
5598+
PaymentCathment DECIMAL(18, 6),
5599+
AlcContriPopulation DECIMAL(18, 6),
5600+
AlcContriNumFamilies DECIMAL(18, 6),
5601+
AlcContriInsPopulation DECIMAL(18, 6),
5602+
AlcContriInsFamilies DECIMAL(18, 6),
5603+
AlcContriVisits DECIMAL(18, 6),
5604+
AlcContriAdjustedAmount DECIMAL(18, 6),
5605+
UPPopulation DECIMAL(18, 6),
5606+
UPNumFamilies DECIMAL(18, 6),
5607+
UPInsPopulation DECIMAL(18, 6),
5608+
UPInsFamilies DECIMAL(18, 6),
5609+
UPVisits DECIMAL(18, 6),
5610+
UPAdjustedAmount DECIMAL(18, 6)
5611+
5612+
5613+
);
5614+
5615+
DECLARE @ClaimValues TABLE (
5616+
HFID INT,
5617+
ProdId INT,
5618+
TotalAdjusted DECIMAL(18, 6),
5619+
TotalClaims DECIMAL(18, 6)
5620+
);
5621+
5622+
INSERT INTO @ClaimValues
5623+
SELECT HFID, @ProdId ProdId, SUM(TotalAdjusted)TotalAdjusted, COUNT(DISTINCT ClaimId)TotalClaims FROM
5624+
(
5625+
SELECT HFID, SUM(PriceValuated)TotalAdjusted, ClaimId
5626+
FROM
5627+
(SELECT HFID,c.ClaimId, PriceValuated FROM tblClaim C WITH (NOLOCK)
5628+
LEFT JOIN tblClaimItems ci ON c.ClaimID = ci.ClaimID and ProdId = @ProdId AND (@WeightAdjustedAmount > 0.0)
5629+
WHERE CI.ValidityTo IS NULL AND C.ValidityTo IS NULL
5630+
AND C.ClaimStatus > 4
5631+
AND YEAR(C.DateProcessed) = @Year
5632+
AND MONTH(C.DateProcessed) = @Month
5633+
AND C.HFID in (SELECT id FROM @listOfHF)and ci.ValidityTo IS NULL
5634+
UNION ALL
5635+
SELECT HFID, c.ClaimId, PriceValuated FROM tblClaim C WITH (NOLOCK)
5636+
LEFT JOIN tblClaimServices cs ON c.ClaimID = cs.ClaimID and ProdId = @ProdId AND (@WeightAdjustedAmount > 0.0)
5637+
WHERE cs.ValidityTo IS NULL AND C.ValidityTo IS NULL
5638+
AND C.ClaimStatus > 4
5639+
AND YEAR(C.DateProcessed) = @Year
5640+
AND MONTH(C.DateProcessed) = @Month
5641+
AND C.HFID in (SELECT id FROM @listOfHF) and CS.ValidityTo IS NULL
5642+
) claimdetails GROUP BY HFID,ClaimId
5643+
)claims GROUP by HFID
5644+
5645+
INSERT INTO @ReportData
5646+
SELECT L.RegionCode, L.RegionName, L.DistrictCode, L.DistrictName, HF.HFCode, HF.HFName, Hf.AccCode,
5647+
HL.Name HFLevel,
5648+
SL.HFSublevelDesc HFSublevel,
5649+
PF.[TotalPopulation] TotalPopulation, PF.TotalFamilies TotalFamilies, II.TotalInsuredInsuree, IFam.TotalInsuredFamilies, CV.TotalClaims, CV.TotalAdjusted
5650+
,(
5651+
ISNULL(ISNULL(PF.[TotalPopulation], 0) * (A.Allocated * (0.01 * @ShareContribution) * (0.01 * @WeightPopulation)) / NULLIF(SUM(PF.[TotalPopulation])OVER(),0),0)
5652+
+ ISNULL(ISNULL(PF.TotalFamilies, 0) * (A.Allocated * (0.01 * @ShareContribution) * (0.01 * @WeightNumberFamilies)) /NULLIF(SUM(PF.[TotalFamilies])OVER(),0),0)
5653+
+ ISNULL(ISNULL(II.TotalInsuredInsuree, 0) * (A.Allocated * (0.01 * @ShareContribution) * (0.01 * @WeightInsuredPopulation)) /NULLIF(SUM(II.TotalInsuredInsuree)OVER(),0),0)
5654+
+ ISNULL(ISNULL(IFam.TotalInsuredFamilies, 0) * (A.Allocated * (0.01 * @ShareContribution) * (0.01 * @WeightNumberInsuredFamilies)) /NULLIF(SUM(IFam.TotalInsuredFamilies)OVER(),0),0)
5655+
+ ISNULL(ISNULL(CV.TotalClaims, 0) * (A.Allocated * (0.01 * @ShareContribution) * (0.01 * @WeightNumberVisits)) /NULLIF(SUM(CV.TotalClaims)OVER() ,0),0)
5656+
+ ISNULL(ISNULL(CV.TotalAdjusted, 0) * (A.Allocated * (0.01 * @ShareContribution) * (0.01 * @WeightAdjustedAmount)) /NULLIF(SUM(CV.TotalAdjusted)OVER(),0),0)
5657+
5658+
) PaymentCathment
5659+
5660+
, A.Allocated * (0.01 * @WeightPopulation) * (0.01 * @ShareContribution) AlcContriPopulation
5661+
, A.Allocated * (0.01 * @WeightNumberFamilies) * (0.01 * @ShareContribution) AlcContriNumFamilies
5662+
, A.Allocated * (0.01 * @WeightInsuredPopulation) * (0.01 * @ShareContribution) AlcContriInsPopulation
5663+
, A.Allocated * (0.01 * @WeightNumberInsuredFamilies) * (0.01 * @ShareContribution) AlcContriInsFamilies
5664+
, A.Allocated * (0.01 * @WeightNumberVisits) * (0.01 * @ShareContribution) AlcContriVisits
5665+
, A.Allocated * (0.01 * @WeightAdjustedAmount) * (0.01 * @ShareContribution) AlcContriAdjustedAmount
5666+
5667+
, ISNULL((A.Allocated * (0.01 * @WeightPopulation) * (0.01 * @ShareContribution))/ NULLIF(SUM(PF.[TotalPopulation]) OVER(),0),0) UPPopulation
5668+
, ISNULL((A.Allocated * (0.01 * @WeightNumberFamilies) * (0.01 * @ShareContribution))/NULLIF(SUM(PF.TotalFamilies) OVER(),0),0) UPNumFamilies
5669+
, ISNULL((A.Allocated * (0.01 * @WeightInsuredPopulation) * (0.01 * @ShareContribution))/NULLIF(SUM(II.TotalInsuredInsuree) OVER(),0),0) UPInsPopulation
5670+
, ISNULL((A.Allocated * (0.01 * @WeightNumberInsuredFamilies) * (0.01 * @ShareContribution))/ NULLIF(SUM(IFam.TotalInsuredFamilies) OVER(),0),0) UPInsFamilies
5671+
, ISNULL((A.Allocated * (0.01 * @WeightNumberVisits) * (0.01 * @ShareContribution)) / NULLIF(SUM(CV.TotalClaims) OVER(),0),0) UPVisits
5672+
, ISNULL((A.Allocated * (0.01 * @WeightAdjustedAmount) * (0.01 * @ShareContribution))/ NULLIF(SUM(CV.TotalAdjusted) OVER(),0),0) UPAdjustedAmount
5673+
5674+
FROM tblHF HF
5675+
INNER JOIN @HFLevel HL ON HL.Code = HF.HFLevel
5676+
LEFT OUTER JOIN tblHFSublevel SL ON SL.HFSublevel = HF.HFSublevel
5677+
LEFT JOIN @LocationTemp L ON L.LocationId = HF.LocationId
5678+
LEFT OUTER JOIN @TotalPopFam PF ON PF.HFID = HF.HfID
5679+
LEFT OUTER JOIN @InsuredInsuree II ON II.HFID = HF.HfID
5680+
LEFT OUTER JOIN @InsuredFamilies IFam ON IFam.HFID = HF.HfID
5681+
-- LEFT OUTER JOIN @Claims C ON C.HFID = HF.HfID
5682+
LEFT OUTER JOIN @ClaimValues CV ON CV.HFID = HF.HfID
5683+
LEFT OUTER JOIN @Allocation A ON A.ProdID = @ProdId
5684+
5685+
WHERE HF.ValidityTo IS NULL
5686+
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)
5687+
AND (HF.HFLevel IN (@Level1, @Level2, @Level3, @Level4) OR (@Level1 IS NULL AND @Level2 IS NULL AND @Level3 IS NULL AND @Level4 IS NULL))
5688+
AND(
5689+
((HF.HFLevel = @Level1 OR @Level1 IS NULL) AND (HF.HFSublevel = @Sublevel1 OR @Sublevel1 IS NULL))
5690+
OR ((HF.HFLevel = @Level2 ) AND (HF.HFSublevel = @Sublevel2 OR @Sublevel2 IS NULL))
5691+
OR ((HF.HFLevel = @Level3) AND (HF.HFSublevel = @Sublevel3 OR @Sublevel3 IS NULL))
5692+
OR ((HF.HFLevel = @Level4) AND (HF.HFSublevel = @Sublevel4 OR @Sublevel4 IS NULL))
5693+
);
5694+
5695+
SELECT MAX (RegionCode)RegionCode,
5696+
MAX(RegionName)RegionName,
5697+
MAX(DistrictCode)DistrictCode,
5698+
MAX(DistrictName)DistrictName,
5699+
HFCode,
5700+
MAX(HFName)HFName,
5701+
MAX(AccCode)AccCode,
5702+
MAX(HFLevel)HFLevel,
5703+
MAX(HFSublevel)HFSublevel,
5704+
ISNULL(SUM([TotalPopulation]),0)[Population],
5705+
ISNULL(SUM(TotalFamilies),0)TotalFamilies,
5706+
ISNULL(SUM(TotalInsuredInsuree),0)TotalInsuredInsuree,
5707+
ISNULL(SUM(TotalInsuredFamilies),0)TotalInsuredFamilies,
5708+
ISNULL(MAX(TotalClaims), 0)TotalClaims,
5709+
ISNULL(SUM(AlcContriPopulation),0)AlcContriPopulation,
5710+
ISNULL(SUM(AlcContriNumFamilies),0)AlcContriNumFamilies,
5711+
ISNULL(SUM(AlcContriInsPopulation),0)AlcContriInsPopulation,
5712+
ISNULL(SUM(AlcContriInsFamilies),0)AlcContriInsFamilies,
5713+
ISNULL(SUM(AlcContriVisits),0)AlcContriVisits,
5714+
ISNULL(SUM(AlcContriAdjustedAmount),0)AlcContriAdjustedAmount,
5715+
ISNULL(SUM(UPPopulation),0)UPPopulation,
5716+
ISNULL(SUM(UPNumFamilies),0)UPNumFamilies,
5717+
ISNULL(SUM(UPInsPopulation),0)UPInsPopulation,
5718+
ISNULL(SUM(UPInsFamilies),0)UPInsFamilies,
5719+
ISNULL(SUM(UPVisits),0)UPVisits,
5720+
ISNULL(SUM(UPAdjustedAmount),0)UPAdjustedAmount,
5721+
ISNULL(SUM(PaymentCathment),0)PaymentCathment,
5722+
ISNULL(SUM(TotalAdjusted),0)TotalAdjusted
5723+
5724+
FROM @ReportData
5725+
5726+
GROUP BY HFCode
5727+
END
5728+
GO

0 commit comments

Comments
 (0)