【发布时间】:2017-04-04 03:44:31
【问题描述】:
我有一个包含交易数据的数据库。我正在尝试计算所有员工在“2016-03-01”和“2017-03-01”之间工作的天数。我用来确定每位员工的工作天数是通过 count(distinct day(datecompleted)) 来确定,其中 datecompleted 类似于员工作为司机完成活动的一天。
问题是每天可能有 50-100 笔交易,每笔交易都有一个 datecompleted 时间戳,但是我只想通过抓取一个不同的日期(datecompleted)然后计算给定日期之间的数量来检查员工当天是否工作时间框架...
我使用了这个查询:
select
count(distinct day(dateCompleted)),
repName
from
DATABASE_view_Final
where
datecompleted between '2016-03-01' and '2017-03-01'
group by
repName
由于某种原因,我不断得到结果:31....
这没有任何意义......请有人帮忙
【问题讨论】:
-
您计算不同的日子而不是日期。更改为选择计数(不同的日期已完成),
-
您可能需要使用子查询来获取员工和不同的日期。然后在外部查询中按员工人数分组
-
但是在 4 月 3 日的示例中,有各种时间戳...随着时间的推移...会有所不同吗?
-
所以投日期字段应该按照我在约翰的回答下的建议进行
标签: sql sql-server sql-server-2008 tsql sql-server-2012