日期:2014-05-19  浏览次数:20802 次

急!!!!!! 一个关于SQL统计的语句!
如一个家伙从某年5.1(字段:开始日期)-7.31(字段:结束日期)出了92天(字段天数)差.

我在每个月的报表中,   比如6份的报表中,   怎么在统计其出差天数?

如:

姓名     开始日期     结束日期     天数
---------------------------------------
胡二     2007-5-1     2007-7-31     92
张三     2007-6-2     2007-6-3         2
李四     2007-6-10   2007-7-10     31

怎么统计各个人第m年n月份的出差天数?  
比如07年6月份
胡二:30天
张三:   2天
李四:21天


------解决方案--------------------
用dimff函数可以计算时间差的,函数名称不知道写没写对。在SQL用这么一个计算时间差的函数
------解决方案--------------------
select 姓名,开始日期,开始日期,datediff(d,开始日期,开始日期) '天数 ' from 表

第2个要用case when,datepart拼接比较,语句可能复杂点,现在没开isqlw,不写了
------解决方案--------------------
用convert(varchar(6),日期,112),不用datepart
------解决方案--------------------
周末不管吧,周末出差也是算money滴
------解决方案--------------------
datadiff(dd,data1,data2); 这就是天数
------解决方案--------------------
create table Onbusiness(pname nvarchar(50),dateStart smalldateTime,dateEnd smalldatetime,dateCount int)
insert into Onbusiness values( '胡二 ', '5/1/2007 ', '7/31/2007 ',92)
insert into Onbusiness values( '张三 ', '2007-6-2 ', '2007-6-3 ',2)
insert into Onbusiness values( '李四 ', '2007-6-10 ', '2007-7-10 ',31)
------解决方案--------------------
select pname,(datediff(day,dateStart,dateEnd)+1) as OnbusinessDay from Onbusiness where pname= '胡二 '
------解决方案--------------------
up