现在用Dbgrid或TDbgridEh显示查询结果如此厂商编号  商品编号        数量          金额
  1          1             10            100
  1          2             20            200 
  1          3             30            300
  1          4             40            400  2          1             10            100
  2          2             20            200  3          1             10            100 
  3          2             20            200
  3          3             30            300相在按厂商编码分组对数量和金额显示合计,希望显示成:厂商编号  商品编号        数量          金额
  1          1             10            100
  1          2             20            200 
  1          3             30            300
  1          4             40            400
  1         合计           100           1000    2          1             10            100
  2          2             20            200
  2         合计           30            300  3          1             10            100 
  3          2             20            200
  3          3             30            300
  3         合计           60            600能做吗,或者有否其它方法显示按厂商合计结果

解决方案 »

  1.   

    试试下面的:select 厂商编,  商品编号, 数量, 金额 from table
    union
    select 厂商编 as 厂商编,' ' as 商品编号 ,sum(数量) as 数量,sum(金额) as 金额 from table
    group by  厂商编
    order by  厂商编
      

  2.   

    adoquery1.Close;
          adoquery1.sql.Clear;
          adoquery1.SQL.Add('SELECT 厂商编号,商品编号,数量,金额 FROM TABLE1  
    UNION ALL
    SELECT 厂商编号+'  ','合计', SUM(数量),sum(金额) FROM TABLE1
    GROUP BY 厂商编号
    ORDER BY 厂商编号');
          open;
      

  3.   

    //我的是繁體,你把下面的改成你的列名及表名,應該是可以的
    //我沒有測試  with AdoQuery1 do
      begin
        Close;
        SQL.Text :=
          'select 廠商編號,商品編號,數量,金額 from tablename ' +
          'union select 廠商編號,''合計'',sum(數量),sum(金額) ' +
          ' from tablename group by 廠商編號 ' +
          'order by 廠商編號,商品編號';
        Open;
      end;
      

  4.   

    在有union all语句中,怎么使用order by 啊,我使用order by 报无效字段名