试试
Select top 20 
aduser,
count(*) as todaytotal,
(Select Count(*) from 表A Where aduser=T.aduser) As alltotal
from 表A T
where datediff(day,[addtime],getdate())=0
group by aduser
order by todaytotal desc,aduser

解决方案 »

  1.   

    好象不行。我把datediff(day,[addtime],getdate())=0 改成=1
    就没有数据显示了。 alltotal应该无论是什么时间都应该有统计显示的
      

  2.   

    这个语句应该是可以的。--建立测试环境
    create table TEST
    (
      ID Int identity(1,1),
      adduser varchar(20),
      addtime datetime 
    )
    GO
    --插入数据
    Insert TEST Values('AAA','2005-04-15')
    Insert TEST Values('AAA','2005-04-19')
    Insert TEST Values('AAA','2005-04-19')
    Insert TEST Values('BBB','2005-04-15')
    Insert TEST Values('BBB','2005-04-19')
    Insert TEST Values('CCC','2005-04-19')
    GO
    --测试
    Select 
    adduser,
    count(*) as todaytotal,
    (Select Count(*) from TEST Where adduser=T.adduser) As alltotal
    from TEST T
    where datediff(day,[addtime],getdate())=0
    Group By adduser
    Order By todaytotal desc,adduser
    --删除测试环境
    Drop table TEST
    GO
    --结果
    /*
    adduser todaytotal alltotal
    AAA 2 3
    BBB 1 2
    CCC 1 1
    */