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 に答える