日期:2014-05-17  浏览次数:21037 次

求一SQL统计语句(在线等)
表   a
字段     b                 c             d
            张三           5           2007-5-5
            李四           15         2007-5-5
            王五           20         2007-5-5
            张三           15         2007-5-6
            王五           5           2007-5-6
现在想统计这个表中

2007-5-5   到   2007-5-6   号之间,张三、李四、王五的   c   数据

结果如下
字段     b                 c      
            王五           25          
            张三           20        
            李四           15        
并且按照   c   字段倒序排列
希望大家多指教谢谢:)



------解决方案--------------------
select b,sum(c) as c from d between '2007-5-5 ' and '2007-5-6 ' group by b order by c
试试
------解决方案--------------------
select b,sum(c) as c from a where d between '2007-5-5 ' and '2007-5-6 ' group by b order by sum(c) desc
------解决方案--------------------
select b, sum(c) as c from a group by b order by c desc
------解决方案--------------------
/*

Try:

表 a
字段 b c d
张三 5 2007-5-5
李四 15 2007-5-5
王五 20 2007-5-5
张三 15 2007-5-6
王五 5 2007-5-6
现在想统计这个表中

2007-5-5 到 2007-5-6 号之间,张三、李四、王五的 c 数据

结果如下
字段 b c
王五 25
张三 20
李四 15
并且按照 c 字段倒序排列
希望大家多指教谢谢:)
*/

Declare @a table(b varchar(25),c int,d datetime)
insert into @a(b,c,d) values ( '张三 ',5, '2007-5-5 ')
insert into @a(b,c,d) values ( '李四 ',15, '2007-5-5 ')
insert into @a(b,c,d) values ( '王五 ',20, '2007-5-5 ')
insert into @a(b,c,d) values ( '张三 ',15, '2007-5-6 ')
insert into @a(b,c,d) values ( '王五 ',5, '2007-5-6 ')


Select b,Sum(c) c from @a
where datediff(day,d, '2007-5-5 ') <=0 and datediff(day, '2007-5-6 ',d) <=0
group by b
order by c Desc

--如果时间不是规则的200-5-5格式,使用datediff运算会更好一些。