1
在此先感谢!获取日均特定日期范围的SQL Server
这是我到目前为止有:
我被人选择任务总量为给定日期范围内特定的所有者。我现在试图为每个人获得确切的每日任务平均数。
我遇到的问题是,它使平均结束返回.00,而不是确切的平均水平。例如,一个人一周可能有两项任务;我得到0.00的平均,而不是0.28或0.29
SELECT
convert(nvarchar, COUNT(p.personID)) AS count,
CONVERT(decimal(4, 2), COUNT(p.personID)/DATEDIFF(DAY, @startDate, @endDate)) AS average,
p.personID,
p.firstname,
p.lastname,
c.companyname
FROM
Tasks t
JOIN
Person p ON p.personID = t.personID
JOIN
Client c ON c.id = p.employer
JOIN
Commission m ON m.ClientID = c.ID
WHERE
t.created BETWEEN @startDate AND @endDate
AND m.owner IN ('John Doe')
GROUP BY
p.personID, p.firstname, p.lastname, c.companyname
ORDER BY
c.companyname, count DESC
谢谢你的回答!它的工作原理,当我添加1.0时是否仍然需要将它转换为小数? – Klay
声明“当分割2个整数时得到第三个整数向下取整”是rdbms特有的。这对于sql server来说是正确的,但对于redbrick和oracle来说是错误的。我测试了这三个。由于该问题没有任何特定数据库引擎的标签,因此我认为值得一提。 –
@DanBracuk标题说sqlserver。你是对的 –