- 爱易网页
 
                        - 
                            MSSQL教程
 
                        - []sql语句求和统计 
 
                         
                    
                    
                    日期:2014-05-19  浏览次数:20757 次 
                    
                        
                         [求助]sql语句求和统计
在数据库中字段如下,调试环境asp+access: 
 id         t_name            时间                     数值1                        数值2            合计 
 1               a                              2007-6            5                                       4                     9 
 2               a                              2007-5            3                                       7                     10 
 3               b                              2007-6            6                                       6                     12 
 4               b                              2007-5            7                                       7                     14 
  
 怎样通过一句sql,将数据显示为 
 姓名      5月            6月            合计 
 a               10                  9                  19 
 b                  14               12               26 
  
 sql是: 
 SELECT   *   FROM   B1   LEFT   JOIN   ( 
 select   t_name,sum(iif(时间= '2007-5 ',合计,0))   as   5月, 
 sum(iif(时间= '2007-6 ',合计,0))   as   6月,sum(合计)   as   hj 
 from   tt   group   by   T_name)   A 
 ON   A.T_NAME=B1.T_NAME 
  
 现在的问题是数据显示为 
 姓名      5月            6月            合计 
 a               10                  9                  19 
 b                  14               12               26 
 a               10                  9                  19 
 b                  14               12               26 
 多循环了一次,sql   语句怎样修改。谢谢。
------解决方案--------------------
直接要 
  
 select t_name,sum(iif(时间= '2007-5 ',合计,0)) as 5月, 
 sum(iif(时间= '2007-6 ',合计,0)) as 6月,sum(合计) as hj 
 from tt group by T_name 
  
------解决方案--------------------
if object_id( 'pubs..tb ') is not null 
    drop table tb 
 go 
  
 create table tb(id int,t_name varchar(10), 时间 varchar(10),数值1 int,数值2 int,合计 int) 
 insert into tb values(1,      'a ',           '2007-6 ',    5,             4,       9) 
 insert into tb values(2,      'a ',           '2007-5 ',    3,             7,       10) 
 insert into tb values(3,      'b ',           '2007-6 ',    6,             6,       12)