我做了个sql的统计,一下是SQL语句
select 
convert(char(20),QuestionTime,23) as 'Time',
dbo.GetStatsQuestion(0,convert(char(20),QuestionTime,23),1) as sta,
Count(ID) as 'QuestionNum'
from QuestionInfo 
where QuestionTime>='2011-06-08' and QuestionTime<='2011-09-05'
group by convert(char(20),QuestionTime,23)
with rollup 
order by convert(char(20),QuestionTime,23) desc统计的结果:
Time                    sta          QuestionNum
2011-06-09           50       50
2011-06-08           50       50
      NULL              0      2360我想问下最后为什么会有NULL出现,如何避免这样的问题,求解答,谢谢!!

解决方案 »

  1.   

    Try:select 
    convert(char(20),QuestionTime,23) as 'Time',
    dbo.GetStatsQuestion(0,convert(char(20),QuestionTime,23),1) as sta,
    Count(ID) as 'QuestionNum'
    from QuestionInfo 
    where QuestionTime>='2011-06-08' and QuestionTime<='2011-09-05'
    group by convert(char(20),QuestionTime,23)
    order by convert(char(20),QuestionTime,23) desc
      

  2.   

    select 
    isnull(convert(char(20),QuestionTime,23),'合计') as 'Time',
    dbo.GetStatsQuestion(0,convert(char(20),QuestionTime,23),1) as sta,
    Count(ID) as 'QuestionNum'
    from QuestionInfo 
    where QuestionTime>='2011-06-08' and QuestionTime<='2011-09-05'
    group by convert(char(20),QuestionTime,23)
    with rollup 
    order by convert(char(20),QuestionTime,23) desc
      

  3.   

    select 
    isnull(convert(char(20),QuestionTime,23),'合计') as 'Time',
    dbo.GetStatsQuestion(0,convert(char(20),QuestionTime,23),1) as sta,
    Count(ID) as 'QuestionNum'
    from QuestionInfo 
    where QuestionTime>='2011-06-08' and QuestionTime<='2011-09-05'
    group by convert(char(20),QuestionTime,23)
    with rollup 
    order by convert(char(20),QuestionTime,23) desc
      

  4.   

    楼主可以看一下 with rollup 
    的用法
    http://www.jb51.net/article/18860.htm
      

  5.   

    谢谢各位,问题已经找到并解决了,出现在with rollup  没有条件上,解决后的代码为
    select 
    convert(char(20),QuestionTime,23) as 'Time',
    dbo.GetStatsQuestion(0,convert(char(20),QuestionTime,23),1) as sta,
    Count(ID) as 'QuestionNum'
    from QuestionInfo 
    where QuestionTime>='2011-06-08' and QuestionTime<='2011-09-05'
    group by convert(char(20),QuestionTime,23)
    with rollup having  (convert(char(20),QuestionTime,23) is not null) 
    order by convert(char(20),QuestionTime,23) desc
    谢谢大家的耐心解答,结贴给分!
      

  6.   

    你这是何必呢,去掉with rollup就行了,你不明白with rollup用法?照着书本写会害死人的