我正在寫一個簡單的時間跟蹤程序來管理我自己的項目。我非常喜歡將報告代碼保存在數據庫中,所以我一直在嘗試創建一些生成發票和時間表的sprocs。我該如何計算check in和check out列表中的timespans?
我有一個表,其中包含時鐘操作,IE「Punch In 「和」衝出「。它還包含執行此操作的用戶,與操作關聯的項目和當前日期/時間。
我可以從此表中選擇爲特定時間/項目/和用戶獲取時鐘,但我想將它聚合,以便每個時鐘輸入和輸出都從2行轉換爲包含總時間的單個行。
例如,這裏是一個示例輸出:
ClockActionID ActionType DateTime
-------------------- ---------- -----------------------
17 1 2008-11-08 18:33:56.000
18 2 2008-11-08 18:33:59.587
19 1 2008-11-08 18:34:01.023
20 2 2008-11-08 18:34:02.037
21 1 2008-11-08 18:45:06.317
22 2 2008-11-08 18:46:14.597
23 1 2008-11-08 18:46:16.283
24 2 2008-11-08 18:46:17.173
25 1 2008-11-08 18:50:37.830
26 2 2008-11-08 18:50:39.737
27 1 2008-11-08 18:50:40.547
(11 row(s) affected)
當操作類型1爲 「ClockIn」 和操作類型2是 「CLOCKOUT」。爲了簡潔,我還修剪了User,Project和Description列。
我需要生成,在純SQL,一個結果集,如:
Description | Total Time
對於每個ClockIn/CLOCKOUT對。
我想這實際上會很簡單,我只是不太確定接近它的方式。
編輯:用戶將能夠同時計時到多個項目,雖然通過首先縮小結果集到單個項目,這應該不會對這裏的邏輯有任何區別。
你想要什麼叫做臨時連接操作。 – kasperjj 2008-11-09 03:25:43
您能否詳細說明或鏈接到一些信息? – FlySwat 2008-11-09 03:28:58