如何结合我的2个查询来获得我的第二个计数

时间:2016-05-11 21:23:00

标签: mysql

我有这个问题:

SELECT   DATENAME(MONTH,dbo.fn_dstoffset(CREATED)) AS MON, 
         SR_AREA, 
         COUNT(*) AS COUNT
FROM     S_SRV_REQ
WHERE   (INS_PRODUCT = 'PS') 
  AND   (dbo.fn_dstoffset(CREATED) BETWEEN '10/1/2015' AND '11/1/2015')
GROUP BY DATENAME(MONTH,dbo.fn_dstoffset(CREATED)), 
         SR_AREA

产生这个输出:

--------+-----------------------------+------
MON     | SR_AREA                     | COUNT
--------+-----------------------------+------
October | Privacy Violation           |    42
October | Renewal/New RX CII/Narcotic |  6422
October | Refill Hold                 |   851
October | Status of RX                | 37937
October | Death Notification          |   130
October | NULL                        |     1
October | Renewal/New RX Action Taken | 21074
October | Clinical Question           |  6554
--------+-----------------------------+------

我有这种变化:

SELECT   DATENAME(MONTH,dbo.fn_dstoffset(CREATED)) AS MON, 
         SR_AREA, 
         COUNT(*) AS COUNT
FROM     S_SRV_REQ
WHERE   (INS_PRODUCT = 'PS') 
    AND (dbo.fn_dstoffset(CREATED) BETWEEN '10/1/2015' AND '11/1/2015') 
    AND (RESOLUTION_CD = 'External Referral')
GROUP BY DATENAME(MONTH,dbo.fn_dstoffset(CREATED)), 
         SR_AREA

产生这个输出:

--------+-----------------------------+------
MON     | SR_AREA                     | COUNT
--------+-----------------------------+------
October | Identify Med Unavailable    |    22
October | Tracking Available          |  1451
October | Out of Rx                   |  3664
October | General Inquiry             |    19
October | Renewal/New RX Failed Alert |  5887
October | Nursing Home Assist         |    31
October | Renewal                     |     1
October | Tracking Unavailable        |   680
--------+-----------------------------+------

如何组合这两个查询以使我的第二个计数并排到第一个。

1 个答案:

答案 0 :(得分:1)

您可以使用CASE WHEN结构执行此操作,如下所示:

SELECT   DATENAME(MONTH,dbo.fn_dstoffset(CREATED)) AS MON, 
         SR_AREA, 
         COUNT(*) AS COUNT,
         COUNT(CASE WHEN RESOLUTION_CD='External Referral' THEN 1 END) AS COUNT2
FROM     S_SRV_REQ
WHERE   (INS_PRODUCT = 'PS') 
    AND (dbo.fn_dstoffset(CREATED) BETWEEN '10/1/2015' AND '11/1/2015') 
GROUP BY DATENAME(MONTH,dbo.fn_dstoffset(CREATED)), 
         SR_AREA