子任务    时间           质量等级     项目
1    2011-12-2 15:14 合格   DubaiTRUEOrtho1
2    2011-12-2 15:14    合格   DubaiTRUEOrtho1
3    2011-12-2 15:32    合格   DubaiTRUEOrtho1
4    2011-12-2 16:59    合格   DubaiTRUEOrtho1
5    2011-12-2 17:01    合格   DubaiTRUEOrtho1
6    2011-12-5 16:12    合格   DubaiTRUEOrtho1
7    2011-12-5 16:14    合格   DubaiTRUEOrtho1
8    2011-12-5 16:20    合格   DubaiTRUEOrtho1
9    2011-12-5 16:24    合格   DubaiTRUEOrtho1
10    2011-12-5 16:26    合格   DubaiTRUEOrtho1
11    2011-12-5 16:27    合格   DubaiTRUEOrtho1
12    2011-12-5 16:48    合格   DubaiTRUEOrtho1
13    2011-12-5 16:49    合格   DubaiTRUEOrtho1
14    2011-12-5 16:52    合格   DubaiTRUEOrtho1
15    2011-12-5 16:55    合格   DubaiTRUEOrtho1
16    2011-12-5 16:56    不合格 DubaiTRUEOrtho1
17    2011-12-5 16:57    合格   DubaiTRUEOrtho1
18    2011-12-6 10:02    合格   DubaiTRUEOrtho1
19    2011-12-6 10:10    合格   DubaiTRUEOrtho1
20    2011-12-6 10:13    合格   DubaiTRUEOrtho1
21    2011-12-6 10:15    合格   DubaiTRUEOrtho1
.....
我用"select 项目, 时间 ,ROUND(CAST(SUM(CASE WHEN 质量等级 = '合格' THEN 1 ELSE 0 END) AS float) , 2) as 合格 ,ROUND(CAST(SUM(CASE WHEN 质量等级 = '不合格' THEN 1 ELSE 0 END) AS float) , 2) as 不合格  from {0} where 1=1 group by 时间,项目名称"
查询出来的结果是这样的    项目            时间       合格数  不合格数
DubaiTRUEOrtho1    2011-12-2 15:14    1    0
DubaiTRUEOrtho1    2011-12-2 15:32    1    0
DubaiTRUEOrtho1    2011-12-2 16:59    1    0
DubaiTRUEOrtho1    2011-12-2 17:01    1    0
DubaiTRUEOrtho1    2011-12-5 16:12    1    0
DubaiTRUEOrtho1    2011-12-5 16:14    1    0
DubaiTRUEOrtho1    2011-12-5 16:17    1    0
DubaiTRUEOrtho1    2011-12-5 16:20    1    0
DubaiTRUEOrtho1    2011-12-5 16:24    1    0
DubaiTRUEOrtho1    2011-12-5 16:26    1    0
DubaiTRUEOrtho1    2011-12-5 16:27    1    0
DubaiTRUEOrtho1    2011-12-5 16:48    1    0
DubaiTRUEOrtho1    2011-12-5 16:49    1    0
DubaiTRUEOrtho1    2011-12-5 16:52    1    0
DubaiTRUEOrtho1    2011-12-5 16:55    1    0
DubaiTRUEOrtho1    2011-12-5 16:56    0    0
DubaiTRUEOrtho1    2011-12-5 16:57    1    0
DubaiTRUEOrtho1    2011-12-6 10:02    1    0
DubaiTRUEOrtho1    2011-12-6 10:10    1    0
DubaiTRUEOrtho1    2011-12-6 10:13    1    0
DubaiTRUEOrtho1    2011-12-6 10:15    1    0
DubaiTRUEOrtho1    2011-12-6 10:19    1    0
DubaiTRUEOrtho1    2011-12-6 9:44    1    0
DubaiTRUEOrtho1    2011-12-6 9:53    1    0
DubaiTRUEOrtho1    2011-12-6 9:54    1    0
DubaiTRUEOrtho1    2011-12-6 9:56    1    0
DubaiTRUEOrtho1    2011-12-6 9:57    1    0我想要的结果是这样的
    项目            时间       合格数  不合格数
DubaiTRUEOrtho1    2011-12-2     4    0
DubaiTRUEOrtho1    2011-12-5    12    1
DubaiTRUEOrtho1    2011-12-6    10    0
select 项目,convert(varchar(10),时间,120)日期,
sum(case when 质量等级='合格' then 1 else 0 end)合格数,
sum(case when 质量等级='不合格' then 1 else 0 end)不合格数
from tb
group by 项目,convert(varchar(10),时间,120)
现在我已经查出来上面的数据了  但是我想查询2011-12-5这一天的该怎么查啊?
用where 时间 = '2011-12-5'查不出来啊  请教高人

解决方案 »

  1.   

    select 项目,convert(varchar(10),时间,120)日期,
    sum(case when 质量等级='合格' then 1 else 0 end)合格数,
    sum(case when 质量等级='不合格' then 1 else 0 end)不合格数
    from tb
    group by 项目,convert(varchar(10),时间,120)
    where 时间 = '2011-12-05'
      

  2.   

    select 项目,convert(varchar(10),时间,120)日期,
    sum(case when 质量等级='合格' then 1 else 0 end)合格数,
    sum(case when 质量等级='不合格' then 1 else 0 end)不合格数
    from tb
    group by 项目,convert(varchar(10),时间,120)
    having convert(varchar(10),时间,120)='2011-12-05'
      

  3.   

    select 项目,convert(varchar(10),时间,120)日期,
    sum(case when 质量等级='合格' then 1 else 0 end)合格数,
    sum(case when 质量等级='不合格' then 1 else 0 end)不合格数
    from tb
    group by 项目,convert(varchar(10),时间,120)
    where 时间 between '2011-12-5 00:00:00' and '2011-12-5 23:59:59'
      

  4.   

    select 项目,convert(varchar(10),时间,120)日期,
    sum(case when 质量等级='合格' then 1 else 0 end)合格数,
    sum(case when 质量等级='不合格' then 1 else 0 end)不合格数
    from tb where datediff(day,时间,'2011-12-05')=0
      

  5.   

    怎么我用总是说
    消息 156,级别 15,状态 1,第 1 行
    关键字 'where' 附近有语法错误。
      

  6.   

    having convert(varchar(10),时间,120)='2011-12-05'
    这个行吗?