CASE WHEN #member.programid = 'QMXHPQ1621' THEN ISNULL(count(distinct #PLANDATA_Claim.claimid), count(distinct #ENCOUNTER_Claim.claimid)) ELSE END AS "ABD",
IF object_id('Tempdb..#files') IS NOT NULL BEGIN DROP TABLE #files ENDCREATE TABLE #files (controlID char(10), claimid int, memberid int)IF object_id('Tempdb..#member') IS NOT NULL BEGIN DROP TABLE #member ENDCREATE TABLE #member (memberid int, programid char(10))IF object_id('Tempdb..#PLANDATA_Claim') IS NOT NULL BEGIN DROP TABLE #PLANDATA_Claim ENDCREATE TABLE #PLANDATA_Claim (nameFile char(10), claimid int)IF object_id('Tempdb..#ENCOUNTER_Claim') IS NOT NULL BEGIN DROP TABLE #ENCOUNTER_Claim ENDCREATE TABLE #ENCOUNTER_Claim (nameFile char(10), claimid int)-- INSERT data into #filesINSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 1, 1)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 2, 2)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 3, 3)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 4, 4)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 5, 5)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 6, 6)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 7, 7)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 8, 8)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 9, 9)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 10, 10)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 11, 11)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 12, 12)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 13, 13)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 14, 14)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 15, 15)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 16, 16)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 17, 17)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 18, 18)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 19, 19)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 20, 20)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 21, 21)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 22, 22)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 23, 23)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 24, 24)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 25, 25)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 26, 26)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 27, 27)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 28, 28)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 29, 29)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 30, 30)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 31, 31)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 32, 32)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 33, 33)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 34, 34)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 35, 35)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 36, 36)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 37, 37)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 38, 38)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 39, 39)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 40, 40)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 41, 41)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 42, 42)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 43, 43)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 44, 44)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 45, 45)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 46, 46)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 47, 47)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 48, 48)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 49, 49)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 50, 50)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 51, 51)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test1', 52, 52)INSERT INTO #files (controlID, claimid, memberid) VALUES ('test2', 53, 53)-- INSERT data into #memberINSERT INTO #member (memberid,programid) VALUES (1, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (2, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (3, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (4, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (5, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (6, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (7, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (8, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (9, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (10, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (11, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (12, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (13, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (14, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (15, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (16, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (17, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (18, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (19, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (20, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (21, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (22, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (23, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (24, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (25, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (26, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (27, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (28, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (29, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (30, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (31, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (32, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (33, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (34, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (35, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (36, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (37, 'QMXHPQ0001')INSERT INTO #member (memberid,programid) VALUES (38, 'QMXHPQ0002')INSERT INTO #member (memberid,programid) VALUES (39, 'QMXHPQ0002')INSERT INTO #member (memberid,programid) VALUES (40, 'QMXHPQ0002')INSERT INTO #member (memberid,programid) VALUES (41, 'QMXHPQ0002')INSERT INTO #member (memberid,programid) VALUES (42, 'QMXHPQ0002')INSERT INTO #member (memberid,programid) VALUES (43, 'QMXHPQ0002')INSERT INTO #member (memberid,programid) VALUES (44, 'QMXHPQ0002')INSERT INTO #member (memberid,programid) VALUES (45, 'QMXHPQ0002')INSERT INTO #member (memberid,programid) VALUES (46, 'QMXHPQ0002')INSERT INTO #member (memberid,programid) VALUES (47, 'QMXHPQ0002')INSERT INTO #member (memberid,programid) VALUES (48, 'QMXHPQ0002')INSERT INTO #member (memberid,programid) VALUES (49, 'QMXHPQ0002')INSERT INTO #member (memberid,programid) VALUES (50, 'QMXHPQ0002')INSERT INTO #member (memberid,programid) VALUES (51, 'QMXHPQ0002')INSERT INTO #member (memberid,programid) VALUES (52, 'QMXHPQ0002')INSERT INTO #member (memberid,programid) VALUES (53, 'QMXHPQ0002')-- INSERT data into #PLANDATA_ClaimINSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 1)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 2)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 3)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 4)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 5)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 6)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 7)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 8)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 9)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 10)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 11)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 12)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 13)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 14)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 15)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 16)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 17)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 18)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 19)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 20)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 21)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 22)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 23)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 24)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 25)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 26)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 27)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 28)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 29)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 30)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 31)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 32)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 33)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 34)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 35)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 36)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0001', 37)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0002', 38)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0002', 39)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0002', 40)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0002', 41)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0002', 42)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0002', 43)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0002', 44)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0002', 45)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0002', 46)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0002', 47)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0002', 48)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0002', 49)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0002', 50)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0002', 51)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0002', 52)INSERT INTO #PLANDATA_Claim (nameFile, claimid) VALUES ('QMXHPQ0002', 53)-- #ENCOUNTER_Claim is empty intentionallySELECT "File Name" AS "File Name", sum(FFS) AS FFS, sum(Encounter) AS Encounter, sum(ABD) AS ABD, sum(CFC) AS CFCFROM ( SELECT rtrim(ltrim(#files.controlID)) AS "File Name", ISNULL(count(distinct #PLANDATA_Claim.claimid),0) AS "FFS", ISNULL(count(distinct #ENCOUNTER_Claim.claimid),0) AS "Encounter", CASE WHEN #member.programid = 'QMXHPQ1621' THEN ISNULL(count(distinct #PLANDATA_Claim.claimid),count(distinct #ENCOUNTER_Claim.claimid)) ELSE 0 END AS "ABD", CASE WHEN #member.programid = 'QMXHPQ1621' THEN 0 ELSE ISNULL(count(distinct #PLANDATA_Claim.claimid),count(distinct #ENCOUNTER_Claim.claimid)) END AS "CFC" -- ABD is QMXHPQ1621 FROM #files JOIN #member ON #files.memberid = #member.memberid LEFT JOIN #PLANDATA_Claim ON #files.claimid = #PLANDATA_Claim.claimid LEFT JOIN #ENCOUNTER_Claim ON #files.claimid = #ENCOUNTER_Claim.claimid WHERE #files.controlID IN ('test1','test2') GROUP BY #files.controlID, #member.programid -- causes duplicates in the totals -- attempts to correctly group below --CASE WHEN #member.programid = 'QMXHPQ1621' THEN 'ABD' ELSE 'CFC' END -- says not in an aggregate --CASE WHEN #member.programid = 'QMXHPQ1621' --THEN ISNULL(count(distinct #PLANDATA_Claim.claimid),count(distinct #ENCOUNTER_Claim.claimid)) -- ELSE 0 -- END, -- says can't use an aggregate --CASE WHEN #member.programid = 'QMXHPQ1621' -- THEN 0 -- ELSE ISNULL(count(distinct #PLANDATA_Claim.claimid),count(distinct #ENCOUNTER_Claim.claimid)) --END -- says can't use an aggregate /*ORDER BY #files.controlID*/ ) myButtGROUP BY "File Name"/* Results: (as desired) Now what the heck does the warning mean?File Name FFS Encounter ABD CFCtest1 52 0 0 52test2 1 0 0 1(2 row(s) affected)Warning: Null value is eliminated by an aggregate or other SET operation.*/
DROP TABLE JBMTestGO--===== Create and populate a 1,000,000 row test table. -- Column "RowNum" has a range of 1 to 1,000,000 unique numbers -- Column "SomeInt" has a range of 1 to 50,000 non-unique numbers -- Column "SomeLetters2" has a range of "AA" to "ZZ" non-unique 2 character strings -- Column "SomeMoney has a range of 0.0000 to 99.9999 non-unique numbers -- Column "SomeDate" has a range of >=01/01/2000 and <01/01/2010 non-unique date/times -- Column "SomeCSV" contains 'Part01,Part02,Part03,Part04,Part05,Part06,Part07,Part08,Part09,Part10' -- for all rows. -- Column "SomeHex12" contains 12 random hex characters (ie, 0-9,A-F) -- Jeff Moden SELECT TOP 1000000 SomeID = IDENTITY(INT,1,1), SomeInt = ABS(CHECKSUM(NEWID()))%50000+1, SomeLetters2 = CHAR(ABS(CHECKSUM(NEWID()))%26+65) + CHAR(ABS(CHECKSUM(NEWID()))%26+65), SomeCSV = CAST('Part01,Part02,Part03,Part04,Part05,Part06,Part07,Part08,Part09,Part10' AS VARCHAR(80)), SomeMoney = CAST(ABS(CHECKSUM(NEWID()))%10000 /100.0 AS MONEY), SomeDate = CAST(RAND(CHECKSUM(NEWID()))*3653.0+36524.0 AS DATETIME), SomeHex12 = RIGHT(NEWID(),12) INTO dbo.JBMTest FROM Master.dbo.SysColumns t1, Master.dbo.SysColumns t2 --Lack of join criteria makes this a CROSS-JOIN--===== A table is not properly formed unless a Primary Key has been assigned -- Takes about 1 second to execute. ALTER TABLE dbo.JBMTest ADD PRIMARY KEY CLUSTERED (SomeID)
LEFT JOIN #member ON (ISNULL(PLANDATA_Claim.enrollid,ENCOUNTER_Claim.enrollid) = #member.enrollid )
ISNULL(count(distinct #PLANDATA_Claim.claimid),0) AS "FFS",