1

私がコール センターで働いていて、1 日で 10 件の電話をクローズしたが、20 件の電話をオープンしたとします。「本当の」数字は実際には-10. 目標は 10 回の呼び出しで終了しますが、20 回の呼び出しが開かれたため、ワーカーは失敗しました。

これを反映するSQLレポートを書きたいと思います。しかし、私の問題は、集計カウントから数値を計算できないことです。

SELECT workername                       AS Name, 
       (SELECT Count(closeddate) 
        FROM   mybanksupport 
        WHERE  closeddate = NULL)       OPENCALLS, 
       (SELECT Count(closeddate) 
        FROM   mybanksupport 
        WHERE  closeddate = NOT NULL)   CLOSEDCALLS, 
       (SELECT opencalls - closedcalls) REALCALLS 
FROM   mybanksupport 

つまり、2 つの列カウント値を計算し、その値を使用して、Real Calls という別の計算列を作成したいと考えています。

4

2 に答える 2

2

COUNT値のみをカウントします。つまり、NULLs は無視します。このプロパティは、式を単純化するために使用できます。

SELECT workername, closedCalls, totalCalls - closedCalss AS openCalls
FROM   (SELECT   workername, COUNT(closeddate) AS closedcalls, COUNT(*) totalCalls
        FROM     mybanksupport
        GROUP BY workername) t
于 2013-11-02T12:26:35.387 に答える
0

サブクエリとして記述し、必要に応じてフィールドフォームを使用できます

Select
  workername
, OPENCALLS
, CLOSEDCALLS
, (OPENCALLS - CLOSEDCALLS)  REALCALLS
From
(
SELECT workername                       AS Name, 
       (SELECT Count(closeddate) 
        FROM   mybanksupport 
        WHERE  closeddate = NULL)       OPENCALLS, 
       (SELECT Count(closeddate) 
        FROM   mybanksupport 
        WHERE  closeddate = NOT NULL)   CLOSEDCALLS, 
FROM   mybanksupport 
) T1
于 2013-11-02T12:25:03.683 に答える