|
database
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Help with Subquery and "Group By"I'm putting together a report that I really only want to pull data from one main table and join on lookup (lu) tables. I have my query in running condition but I just found out that I do not need to subquery a different table...instead I need to subquery the same table. My issue is that I cannot get proper groupings. I thought this would be simple, but I only need to count the number of records that meet a certain criteria ( app #, date, disposition='4' ). The problem is I already have a count function in the main query to count all of the records and the second count isn't working correctly. I hope this makes sense. I am posting my entire query below...the "DAPPLIC" in the from field(s) is what I am trying to eliminate and instead of the SUM function, I simply want to COUNT(disposition='4') instead of SUM(NUM_HANDPA) SELECT TOP 100 PERCENT dbo.CALLDETAIL.APPLIC_NUM AS AppNum, dbo.APPLIC.AP_NAME AS AppName, COUNT(*) AS CallsOffered, (SELECT ISNULL(SUM(NUM_HANDPA), 0) FROM DAPPLIC WHERE APPLIC_NUM = CALLDETAIL.APPLIC_NUM AND UDAY = '1060920') AS CALLSHANDLEDBYPRIMARYAGENTGROUP, (SELECT ISNULL(SUM(NUM_HANDOA), 0) FROM DAPPLIC WHERE APPLIC_NUM = CALLDETAIL.APPLIC_NUM AND UDAY = '1060920') AS CALLSHANDLEDBYOTHERAGENTGROUP, (SELECT ISNULL(SUM(NUM_ABAND), 0) FROM DAPPLIC WHERE APPLIC_NUM = CALLDETAIL.APPLIC_NUM AND UDAY = '1060920') AS CALLSABANDONED, (SELECT ISNULL(SUM(NUM_HANDWS), 0) FROM DAPPLIC WHERE APPLIC_NUM = CALLDETAIL.APPLIC_NUM AND UDAY = '1060920') AS CALLSHANDLEDWITHINSERVICELEVEL FROM dbo.CALLDETAIL LEFT OUTER JOIN dbo.lu_cflag ON dbo.CALLDETAIL.CFLAG = dbo.lu_cflag.cflag LEFT OUTER JOIN dbo.lu_dest_type ON dbo.CALLDETAIL.DEST_TYPE = dbo.lu_dest_type.dest_type LEFT OUTER JOIN dbo.lu_disposition ON dbo.CALLDETAIL.DISPOSITION = dbo.lu_disposition.disposition LEFT OUTER JOIN dbo.lu_trans_type ON dbo.CALLDETAIL.TRANS_TYPE = dbo.lu_trans_type.trans_type LEFT OUTER JOIN dbo.lu_call_type ON dbo.CALLDETAIL.CALL_TYPE = dbo.lu_call_type.call_type LEFT OUTER JOIN dbo.AGENTGRP RIGHT OUTER JOIN dbo.USERS ON dbo.AGENTGRP.AGRP = dbo.USERS.AGRP LEFT OUTER JOIN dbo.TEAM ON dbo.USERS.TEAM_NUM = dbo.TEAM.TNUM ON dbo.CALLDETAIL.DEST = dbo.USERS.EXT_NUM LEFT OUTER JOIN dbo.HALFHR ON dbo.CALLDETAIL.TERM_TIME >= dbo.HALFHR.START_INTVL AND dbo.CALLDETAIL.TERM_TIME <= dbo.HALFHR.END_INTVL LEFT OUTER JOIN dbo.APPLIC ON dbo.CALLDETAIL.APPLIC_NUM = dbo.APPLIC.AP_NUM WHERE (NOT (dbo.CALLDETAIL.CFLAG IN ('X'))) AND (dbo.CALLDETAIL.CALL_TYPE IN (15, 2)) AND (dbo.CALLDETAIL.TRANS_TYPE IN (1, 3)) AND (dbo.CALLDETAIL.DISPOSITION IN (2, 4, 5)) AND (dbo.CALLDETAIL.TERM_DATE = '1060920') GROUP BY dbo.CALLDETAIL.APPLIC_NUM, dbo.APPLIC.AP_NAME ORDER BY dbo.CALLDETAIL.APPLIC_NUM |
|||||||||||||||||||||||