0

我们有一个表格,存储司机在给定日期的行程次数和行程类型,如下所示

Date           Delivery        Pick-up
====           ========        =======
01/01/2013     5               0

我们还有一个考勤表,存储司机考勤如下。

AttDate        InTime         OutTIme       THours
=======        ======         =======       ======
01/01/2013     10:00          13:00         3

如何使用 MSSQL 2008/2012 使用员工 Thours 计算 5 次行程之间的平均时间?这是出于性能监控的目的。

4

1 回答 1

0

我假设您有某种driver_id,您必须将其添加到联接中,或者,正如@Randy 指出的那样,您将无法确定哪些行属于哪些驱动程序。
这是查询的一般形式:

SELECT Trip.business_day, 
       DATEDIFF(minute, arrivedAt, leftBy) / CASE WHEN deliveries = 0
                                                  THEN 1
                                                  ELSE deliveries END 
                            as average_deliveries_in_minutes
FROM Trip
JOIN Driver_Attendence
  ON Driver_Attendence.business_day = Trip.business_day  

工作 SQL Fiddle 示例
您实际上并没有列出您想要做的事情deliveries = 0是正确的 -CASE存在所以您不会得到“除以零”错误。排除没有任何交付的司机将允许您删除案例,并仅引用该列。

于 2013-02-01T18:01:05.050 回答