我的SQL表(SQL Server结构)有一堆工作订单与我的每个资产相关联,并带有完成日期。所以这样的事情(但每个资产的20多个WO&#39):
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 :(得分:0)
我认为这就是你要做的事情:
SELECT AssetID, DATEDIFF(d, MIN(datecol), MAX(datecol)) as Days
FROM table
GROUP BY AssetID
将为您提供第一份和最后一份工作单之间的天数。
答案 1 :(得分:0)
刚刚看到这篇文章。它已经过时但是对于其他任何看到这个的人来说,上面的答案实际上是错误的Max - Min是范围。 AVG
是所有已添加的值/值的计数。
获得平均值:CAST(AVG(CAST(yourdate AS INT)) AS DATETIME)