首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

SQL语句?

2012-01-18 
求一个SQL语句????????????????????表如下:UserNameProNameTaskNameStartDateEndDate张三    项目1任务120

求一个SQL语句????????????????????
表如下:
UserName ProName TaskName StartDate EndDate
  张三    项目1 任务1 2007-3-1 2007-3-5
  张三    项目1 任务2 2007-3-5 2007-3-8
  李四    项目2 任务1 2007-3-5 2007-3-8


用SQL查询出结果如下:

UserName ProName WorkTime
  张三    项目1 56
  李四    项目2 24

其实就是统计出某个人在某个项目中的总工时数.
工时计算:天数*8

[解决办法]
select UserName, ProName ,((datediff( dd,StartDate,EndDate))*8) as WorkTime from 表
 
[解决办法]
select UserName, ProName , Sum(WorkTime) as WorkTime From
(
select UserName, ProName ,((datediff( dd,StartDate,EndDate))*8) as WorkTime from 表
) T
Group By UserName, ProName
[解决办法]
create table #t
(
UserName varchar(50),
ProName varchar(50),
TaskName varchar(50),
StartDate datetime,
EndDate datetime
)
insert #t
select '张三','项目1','任务1','2007-3-1','2007-3-5'
union all
select '张三','项目1','任务2','2007-3-5','2007-3-8'
union all
select '李四','项目2','任务1','2007-3-1','2007-3-5'


select UserName,ProName,sum(datediff(day,StartDate,EndDate))+1 WorkTime
from #t group by UserName,ProName
运行结果:
/*
张三项目18
李四项目25

*/
[解决办法]
select UserName, ProName ,sum(((datediff( dd,StartDate,EndDate))*8)) from 表
group by UserName, ProName
[解决办法]
沙发 的 简单 加一个where 就成了
[解决办法]
SELECT UserName,ProName,sum(WorkTime) AS WorkTime 
FROM
(SELECT UserName,ProName,datediff(day,StartDate,EndDate)*8 AS WorkTime 
FROM P) P1
GROUP BY UserName,ProName
[解决办法]
select UserName,ProName,sum(datediff(day,StartDate,EndDate))+1 AS WorkTime
from 表 group by UserName,ProName 

[解决办法]
select UserName, ProName ,sum(((datediff( dd,StartDate,EndDate))*8)) from 表 
group by UserName, ProName

正解!
[解决办法]
都说得很清楚了!!



分多就是爽啊!
我都没有分!

给点分我吧!!!!!!
[解决办法]

SQL code
create table #t ( UserName varchar(50), ProName varchar(50), TaskName varchar(50), StartDate datetime, EndDate datetime ) insert #t select  '张三 ', '项目1 ', '任务1 ', '2007-3-1 ', '2007-3-5 ' union all select  '张三 ', '项目1 ', '任务2 ', '2007-3-5 ', '2007-3-8 ' union all select  '李四 ', '项目2 ', '任务1 ', '2007-3-5 ', '2007-3-8 ' select username,ProName,(select datediff(dd,min(StartDate),max(a.EndDate)) from #t where username=a.username)*8 WorkTime from #t a group by username,ProName结果:李四     项目2     24张三     项目1     56
[解决办法]
select UserName, ProName ,sum(((datediff( dd,StartDate,EndDate))*8)) from 表
group by UserName, ProName 

热点排行