Sql server 从同一ID号获取DATEDIFF结果的平均值

Sql server 从同一ID号获取DATEDIFF结果的平均值,sql-server,Sql Server,这是我目前的桌子 员工将有多个订单日期和发货日期。我想得到的是每个员工的差异总和的平均值 一直在为如何实现这一目标而挣扎 这就是我到目前为止所做的 USE Northwind SELECT e.EmployeeID, e.LastName, o.OrderDate, o.ShippedDate, DATEDIFF(DAY, o.OrderDate, o.ShippedDate) as Diff FROM Employees as

这是我目前的桌子

员工将有多个订单日期和发货日期。我想得到的是每个员工的差异总和的平均值

一直在为如何实现这一目标而挣扎

这就是我到目前为止所做的

USE Northwind 

SELECT 
    e.EmployeeID, 
    e.LastName, 
    o.OrderDate, 
    o.ShippedDate, 
    DATEDIFF(DAY, o.OrderDate, o.ShippedDate) as Diff 
FROM 
    Employees as e 
    JOIN Orders as o ON e.EmployeeID = o.EmployeeID
如果在结果集中需要的不仅仅是
EmployeeId
,请按如下方式加入:

select 
    e.EmployeeId
    e.LastName, 
    a.AvgDiff
From
    Employees as e 
Join     (SELECT 
              e.EmployeeID, 
              AVG(CAST(DATEDIFF(DAY, o.OrderDate, o.ShippedDate) as float)) as AvgDiff 
          FROM 
              Employees as e 
              JOIN Orders as o ON e.EmployeeID = o.EmployeeID
          Group By e.EmployeeID) a ON a.EmployeeId = e.EmployeeId
如果在结果集中需要的不仅仅是
EmployeeId
,请按如下方式加入:

select 
    e.EmployeeId
    e.LastName, 
    a.AvgDiff
From
    Employees as e 
Join     (SELECT 
              e.EmployeeID, 
              AVG(CAST(DATEDIFF(DAY, o.OrderDate, o.ShippedDate) as float)) as AvgDiff 
          FROM 
              Employees as e 
              JOIN Orders as o ON e.EmployeeID = o.EmployeeID
          Group By e.EmployeeID) a ON a.EmployeeId = e.EmployeeId

谢谢你,米奇!我正在编辑这篇文章,然后你顺道来了。谢谢你,米奇!我正在编辑文章,然后你顺道过来。这将排除所有空行,对吗?谢谢你的帮助!这将排除所有空行,对吗?谢谢你的帮助!
select 
    e.EmployeeId
    e.LastName, 
    a.AvgDiff
From
    Employees as e 
Join     (SELECT 
              e.EmployeeID, 
              AVG(CAST(DATEDIFF(DAY, o.OrderDate, o.ShippedDate) as float)) as AvgDiff 
          FROM 
              Employees as e 
              JOIN Orders as o ON e.EmployeeID = o.EmployeeID
          Group By e.EmployeeID) a ON a.EmployeeId = e.EmployeeId