比如SQL2000数据库:
  
   人员信息表
               id RanLiao   HeDiZW   LingaShu 
              1   柴油       22        16
              2   汽油      32        10 
              3   柴油       56        24
              4   柴油       16        20
              5   汽油       16        8
              6   柴油       22        19
              7   汽油       32        16
              8   柴油       56        8
 SQL语句如何让查询结果得到如下:
   
             id RanLiao   HeDiZW   LingaShu    意思是说  列 RanLiao  =  柴油的  而且 HeDiZW = 56 的  合成一条  后面的列 LingaShu = 24 + 8 
              1   柴油       22        16                列 RanLiao  =  汽油的  而且 HeDiZW = 32 的  合成一条  后面的列 LingaShu = 10 + 16
              2   柴油       56        32
              3   柴油       22        19
              4   柴油       16        20
              5   汽油       32        26 
              6   汽油       16        8
             
           

解决方案 »

  1.   

    select ranliao,hedizw,sum(lingashu)
    from table
    group by ranliao,hedizw
      

  2.   

    非常感谢: leaohong 查询结果如下:柴油 16 20
    汽油  16 8
    柴油 22 35
    汽油   32 26
    柴油 56 32但是  如何让 得到的结果如下呢?让柴油和汽油的在一起柴油 16 20
    柴油 22 35
    柴油 56 32
    汽油   32 26
    汽油  16 8
      

  3.   

    select   ranliao,hedizw,sum(lingashu) 
    from   table 
    group   by   ranliao,hedizw
    order by ranliao
      

  4.   

    select   ranliao,hedizw,sum(lingashu) 
    from   table 
    group   by   ranliao,hedizw order by ranliao
      

  5.   

    非常感谢   symbol441
    问题解决
      

  6.   

    1楼做的有问题,你要看到查询结果中id的顺序,不是随便放的。
    CREATE PROC Create_Report_EmpInfo
    AS
    BEGIN
      SELECT IDENTITY(INT,1,1) AS [id],SUM(lingashu) AS [SUM]INTO #TEM FROM 人员信息表 GROUP BY ranliao,hedizw
      SELECT DISTINCT * FROM #TEM
    END