Home All Groups Group Topic Archive Search About

Help with Subquery and "Group By"

Author
2 Oct 2006 7:08 PM
D
Hello everyone-
      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

AddThis Social Bookmark Button