当前位置: 代码迷 >> Sql Server >> 关于依据数据统计上班天数
  详细解决方案

关于依据数据统计上班天数

热度:39   发布时间:2016-04-24 09:45:31.0
关于根据数据统计上班天数


小弟初学,问题太多了,呵呵,希望各位见谅。

数据库中每个月每天都有很多条数据。
比如:
select count(*) from 生产报表 where  日期 between '2014-10-1' and '2014-10-31'

这样能统计出10月份有多少条数据。

可是我想统计出来的是,10月份有数据的有多少天
意思就是,如果我有数据进去,表示我当天有上班,我是想统计有多少天上班。

比如11月1号到3号,周末两天我没上班,所以1号跟2号没数据,那么3号就有数据,3号可能有很多条记录
但是它都是3号的
也就是我11月到现在为止就只有1天上班。

前几天没积分发。。。。!

------解决思路----------------------
select count(distinct 日期) from 生产报表 where  日期 between '2014-10-1' and '2014-10-31'
--不知道sqlserver是否支持count(distinct)的方式,不行的话可以用下面的方式
select count(*) from (
select distinct 日期 from 生产报表 where  日期 between '2014-10-1' and '2014-10-31') as T

------解决思路----------------------
select count( distinct 日期) from 生产报表 where  日期 between '2014-10-1' and '2014-10-31'

------解决思路----------------------
有个字符搞错了,小调一下
引用:
group by 就搞定了

select count(*) from 生产报表 where  日期 between '2014-10-1' and '2014-10-31' group by 日期
  相关解决方案