【发布时间】:2014-01-17 16:05:13
【问题描述】:
我正在尝试构建一个语句,该语句将返回每个员工每天处理的工单数量。问题是员工可以在一天内多次处理工作订单(我只会算作 1),或者他们可以在多天内多次处理工作订单(我会算作每天工作 1开)。
我可以使用带有AND 表达式的Case 语句来执行此操作吗?像这样:
SELECT
WKE_EmployeeID, WKE_LabDate, WKE_RecordID,
'WorkOrder' = CASE
WHEN WKE_WorkOrderID = WKE_WorkOrderID AND WKE_LabDate = WKE_LabDate
THEN (Select Distinct WKE_WorkOrderID)
ELSE WKE_WorkOrderID
FROM
dbo.WKE
WHERE
(WKE_EmployeeID IN (N'sweda', N'bakja', N'gebwa'))
AND (WKE_LabDate BETWEEN @FromDate AND @ToDate)
ORDER BY
WKE_WorkOrderID
这当然只是第一部分,b/c 然后我需要计算每个员工每天的工单,但我想先弄清楚如何做这部分,以便我可以验证我的数据。
我是否走在正确的道路上,或者我应该寻求以完全不同的方式做到这一点?也许是子报告?
示例数据库
WKO employee date
RW19800 bakja 1/6/14 12:00 AM
RW20573 gebwa 1/2/14 12:00 AM
RW20574 gebwa 1/2/14 12:00 AM
RW20600 gebwa 1/10/14 12:00 AM
**RW20602 gebwa 1/2/14 12:00 AM
RW20602 gebwa 1/7/14 12:00 AM**
*RW20603 bakja 1/8/14 12:00 AM
RW20603 bakja 1/8/14 12:00 AM*
因此,对于上述粗体部分,我会将其视为 2 个实例,因为工作是在 2 个不同的日子里完成的。
对于斜体部分,我想将其计为 1 个实例,因为在同一天对其进行了两次工作。
最终输出示例:
date WKO Count employee
1/2/14 12:00 AM 3 gebwa
1/6/14 12:00 AM 1 bakja
1/7/14 12:00 AM 1 gebwa
1/8/14 12:00 AM 1 bakja
1/10/14 12:00 AM1 gebwa
【问题讨论】:
-
请输入和输出数据集示例?
-
WKE_LabDate是什么数据类型?您使用的是什么版本的 SQL Server? -
我正在使用 SQL Server 2008,并且我正在使用 Sql server mgmnt studio。 WKE_LabDate 是一个日期时间数据类型
标签: sql sql-server sql-server-2008 tsql case