2013-07-20 30 views
0

我有事務表是這樣的:獲取日期差的和的平均值在SQL

transactID   Locid  vtid  dtime     Paydate 
20     5   7   2013-05-07 17:40:42.000 2013-05-07 17:55:42.000 
21     5   7   2013-05-07 18:15:17.000 2013-05-07 18:25:17.000 
22     5   7   2013-05-07 18:27:44.000 2013-05-07 18:47:44.000 
23     5   8   2013-05-08 12:53:54.000 2013-05-08 13:05:24.000 
24     5   8   2013-05-08 13:11:21.000 2013-05-08 16:53:03.000 

我寫這樣的查詢來獲取datediffernce的SUM

SELECT convert(varchar(10),sum(DATEDIFF(hour,t.Paydate,t.DelDate)))+':' +convert(varchar(10),sum(DATEDIFF(minute,t.Paydate,t.DelDate)% 60)) + ':' 
+convert(varchar(10),sum(DATEDIFF(SECOND,t.Paydate,t.DelDate)% 60)) 
AS ' HH:MM:SS' 
FROM Transaction_tbl t 
WHERE t.Locid=5 
GROUP by vtid 

現在我越來越輸出爲過期總和: HH:MM:SS 3:44:73 1:8:67 我想獲得輸出作爲此值的平均值。我的意思是第一個答案(3:44:73)是7的總和,而不是SUM我想得到average的總和,這裏共有3次vtid 7重複。所以回答除以3.
有沒有辦法像這樣得到平均水平?

回答

0

試試這個:

select SUM(DATEDIFF(MI,t.Paydate,t.DelDate)) as sum_min, 
     AVG(CONVERT(NUMERIC(18,0), DATEDIFF(MI,t.Paydate,t.DelDate))) as avg_min 
from Transaction_tbl t where t.Locid=5 
group by t.vtid 
+0

這正顯示出錯誤的答案。總和顯示正確,但avg_date顯示錯誤 – user2595213

+0

那個例子vtid 7,3次和vtid 8,2次,所以30應該除以3和8應該除以2,那就是gusi出來吧 – user2595213

+0

不。預期 – user2595213