2013-12-17 114 views
0

我的SQL表(SQL Server結構)有一堆工作訂單與我的每個資產都與完成日期相關聯。因此,像這樣(但像20+ WO的每個資產):獲取一列日期的平均值作爲日期

WO#1  10/20/12 12:00:00 AM 
WO#2  10/31/12 12:00:00 Am 

我試圖創建一個腳本,將讓我WO的之間的平均時間。所以我基本上需要得到這個日期欄的差異總和。我認爲這有一些組合CAST,dateDiff,avg解決方法,但我已經嘗試了許多變化,似乎無法得到它。有什麼想法嗎?

所以,如果我有3個日期10/20,10/25和11/12 你會發現第二和第二天之間的前兩天和18天之間的5天。然後,我想的是,平均(5,18)= 11.5

+0

您正在使用哪種RDBMS? – amphibient

+5

你使用哪個db系統? – PrR3

+0

對不起,它是由我們的一個供應商託管的SQL服務器 – HelpfulPaul

回答

0

我想這是你正在嘗試做的:

SELECT AssetID, DATEDIFF(d, MIN(datecol), MAX(datecol)) as Days 
FROM table 
GROUP BY AssetID 

會給你你的第一個和最後的工作秩序之間的天數。

+0

我不敢相信我沒有意識到差異的總和只是第一次和最後一次的差異.....謝謝! – HelpfulPaul

0

剛剛看到這篇文章。這是舊的,但對於看到這個問題的人來說,上面的答案實際上是不正確的。最大 - 最小值是範圍。 AVG是所有值的添加/值的計數。

獲取平均值:CAST(AVG(CAST(yourdate AS INT)) AS DATETIME)