我遇到了一个问题,我一直在盯着几个小时,似乎无法解决。
我有一个表,其内容为:COUNT或SUM(CASE)从单列中的单列
CALLS
CALL_REF {PK}
TIME
CALLER_ID {FK}
DETAIL
TAKEN_BY {FK}
ASSIGNED_TO {FK}
STATUS
实例行是:
1411 8/19/2014 1808 0093 "Detail" AB2 EB1 Closed
1372 8/19/2014 1238 0096 "Detail" MM1 MW1 Open
我需要做的是计算的封闭式和开放式的量在特定日期和一定的时间之间创建以下输出:
Date Shift Status Calls
19-AUG-14 early Closed 47
19-AUG-14 early Open 1
19-AUG-14 late Closed 38
从另一个表中取出换档。
到目前为止,我有这样的:
SELECT shifts.shift_date AS "Date",
shifts.shift_time AS "Time",
calls.status AS "Status",
SUM(CASE
WHEN calls.status = 'Closed' THEN 1
ELSE NULL
end) AS "Open Calls",
SUM(CASE
WHEN calls.status = 'Open' THEN 1
ELSE NULL
end) AS "Closed Calls"
FROM calls
INNER JOIN shifts
ON shifts.shift_date = calls.call_date
WHERE calls.call_date = '19-AUG-14'
AND calls.call_time BETWEEN TO_DATE('08:00', 'HH24:MI') AND
TO_DATE('14:00', 'HH24:MI')
OR calls.call_date = '19-AUG-14'
AND calls.call_time BETWEEN TO_DATE('14:00', 'HH24:MI') AND
TO_DATE('20:00', 'HH24:MI')
GROUP BY shifts.shift_date,
shifts.shift_time,
calls.status
ORDER BY shifts.shift_time,
calls.status;
,输出:
Date Time Status Open Calls Closed Calls
19-AUG-14 Early Closed 85
19-AUG-14 Early Open 1
19-AUG-14 Late Closed 85
19-AUG-14 Late Open 1
这显然是错误的,但我无能,如何将两者结合起来,并将它们两个移位之间分开倍。 请帮忙!
这里是数据库的完整布局,如果你需要的话。 http://i.stack.imgur.com/mKGHU.png
编辑:
现在,我使用||之间的两个总和声明,将他们移动到同一列。但数字仍然是总数。他们需要在早班和晚班之间分开。
SELECT SHIFTS.SHIFT_DATE AS "Date",
SHIFTS.SHIFT_TIME AS "Time",
CALLS.STATUS AS "Status",
SUM(CASE
WHEN CALLS.STATUS = 'Closed' THEN 1
ELSE NULL END) ||
SUM(CASE
WHEN CALLS.STATUS = 'Open' THEN 1
ELSE NULL END) AS "Calls"
FROM CALLS
INNER JOIN SHIFTS
ON SHIFTS.SHIFT_DATE = CALLS.CALL_DATE
WHERE CALLS.CALL_DATE = '19-AUG-14'
AND (CALLS.CALL_TIME BETWEEN TO_DATE('08:00','HH24:MI')
AND TO_DATE('14:00','HH24:MI')
OR CALLS.CALL_DATE = '19-AUG-14'
AND CALLS.CALL_TIME BETWEEN TO_DATE('14:00','HH24:MI') AND TO_DATE('20:00','HH24:MI')
)
GROUP BY SHIFTS.SHIFT_DATE,
SHIFTS.SHIFT_TIME,
CALLS.STATUS
ORDER BY SHIFTS.SHIFT_TIME,
CALLS.STATUS;
TO_DATE('14:00' , 'HH24:MI')给你当年,当月,当月14:00的第一天。那真的是你想要的吗? – Multisync 2014-11-01 21:34:35