让我们说我在呼叫中心工作,我关闭了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的计算列
答案 0 :(得分:2)
COUNT
仅计算值,即忽略NULL
s。此属性可用于简单表达:
SELECT workername, closedCalls, totalCalls - closedCalss AS openCalls
FROM (SELECT workername, COUNT(closeddate) AS closedcalls, COUNT(*) totalCalls
FROM mybanksupport
GROUP BY workername) t
答案 1 :(得分: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