人事表里存的是人员姓名,入职日期,离职日期,没有离职的离职日期是默认的‘1900-1-1’
现在要查取 某年某月当时的在职人数
求SQL

解决方案 »

  1.   


    declare @date datetime
    set @date='2013-01-01'  --自定义查询日期
    select count(1) from 人事表 
    where 入职日期<@date and 离职日期='1900-01-01'
      

  2.   

    declare @date datetime
    set @date='2013-01-01'  --自定义查询日期
    select count(1) from 人事表 
    where 入职日期<=@date and 离职日期='1900-01-01'  --取到查询日期
      

  3.   

    select count(1)
    from tb
    where 离职日期 between 某年某月+'01' and dateadd(dd,-1,dateadd(mm,+1,某年某月)+'01')
      

  4.   


    declare @date datetime
    set @date='2013-01-01'  --自定义查询日期
    select count(1) from 人事表 
    where 入职日期<=@date and (离职日期='1900-01-01' or 离职日期>入职日期)  --取到查询日期
      

  5.   

    declare @date datetimeset @date='2013-01'  --自定义查询日期select count(1) from 人事表 
    where 离职日期='1900-1-1' 
      

  6.   

    declare @date datetime
    set @date='2013-01-01'  --自定义查询日期
    select count(1) from 人事表 
    where 入职日期<=@date and (离职日期='1900-01-01' or 离职日期<=@date)
      

  7.   

    declare @date datetime
    set @date='2013-01-01'  --自定义查询日期
    select count(1) from 人事表 
    where 入职日期<=@date and 离职日期<=@date
      

  8.   

    declare @startDate datetime
    declare @endDate datetime
    select count(1) from 人事表 
    where 入职日期 between convert(varchar(50),@startDate,120) and convert(varchar(50),@endDate,120) and 离职日期 = '1900-1-1'
      

  9.   


       declare @StartDate datetime,
       declare  @EndDate datetime
       set @StartDate='自己定时间'
       set @EndDate='自己定时间'
       select count(1) from ceb where 离职日期>=@StartDate and 离职日期<=@EndDate and 离职日期='1900-1-1'
      

  10.   


    declare @date datetime
    set @date='2011-11-11'  --自定义查询日期select count(1) from Tb where 离职日期>@date or 离职日期=‘1900-1-1’
    楼主不妨试下这句, 测试过了, 没问题