我有一个表,要求统计出如下的字段。
表设计:企业代码 int型,金额1 money型,金额2 money型,金额3 money型。
现在要统计的是:比如我有一个企业代码是000001,它有5条记录,要求统计出
金额1的5条记录的中和sum1,金额2的5条记录的中和sum2,金额3的5条记录的中和sum3,如何写sql语句 。

解决方案 »

  1.   

    select 企业代码, sum(金额1) as 金额1,sum(金额2) as 金额2 , ...
    from tablename
    where ....
    group by 企业代码--------------------------------------------------------------------
    据查证 hammer_shi(@农业专家@(*暂时是菜鸟*))为激进分子,该账号已删除.  
      

  2.   

    请问,您为什么 是as 金额1呢?为什么不是as sum1
    我这样 写的
    SELECT nsmc,qiyecode,SUM(sp1) AS sumsp,SUM(sp2) AS sumsp2,SUM(sp3) AS sumsp3
    SUM(sp4) AS sumsp4
    FROM main where nsmc = 'qxx'
    group by nsmc,qiyecode
    为什么说有错误呢?
      

  3.   

    SELECT nsmc,qiyecode,SUM(sp1) AS sumsp,SUM(sp2) AS sumsp2,SUM(sp3) AS sumsp3
    SUM(sp4) AS sumsp4SUM(sp3) AS sumsp3 后缺少逗(,)号
      

  4.   

    select 企业代码, sum(金额1) as 金额1,sum(金额2) as 金额2 , ...
    from tablename
    where 企业代码='000001'
    group by 企业代码
      

  5.   

    SELECT nsmc, qiyecode, SUM(sp1) AS sumsp, SUM(sp2) AS sumsp2,
           SUM(sp3) AS sumsp3, SUM(sp4) AS sumsp4
      FROM main
     where nsmc = 'qxx'
     group by nsmc,qiyecode
      

  6.   

    在程序里面写又有错误了,请看。
    begin
    Query1.Close;
      Query1.SQL.Text :=
    'SELECT nsmc,qiyecode,SUM(sp1) AS sumsp,SUM(sp2) AS sumsp2,SUM(sp3) AS sumsp3,'#13#10 +
    'SUM(sp4) AS sumsp4,SUM(rk1) AS sumrk1,SUM(rk2) AS sumrk2,SUM(rk3) AS sumrk3,'#13#10 +
    'SUM(rk4) AS sumrk4,SUM(qj1) AS sumqj1,SUM(qj2) AS sumqj2,SUM(qj3) AS sumqj3,'#13#10 +
    'SUM(qj4) AS sumqj4'#13#10 +
    'FROM main'#13#10 +
    'where'#13#10 +
      if ComboBox3.Text<>'' then
        Query1.SQL.Add('nsmc='''+ComboBox3.Text+'''');
      if ComboBox4.Text<>'' then
        Query1.SQL.Add('AND qiyecode='''+ComboBox4.Text+'''');
      Query1.SQL.Add('GROUP BY nsmc,qiyecode');
      try
        Query1.Open;
        ShowMessage('欢迎使用,一共查询到的记录数是:'+IntToStr(Query1.RecordCount));
      except
        {}
      end; Query1.SQL.Add('group by nsmc,qiyecode');
     try
        Query1.Open;
        ShowMessage('欢迎使用,一共查询到的记录数是:'+IntToStr(Query1.RecordCount));
      except
        {}
      end;
    end;
      

  7.   

    呵呵,假如你的两个下拉框都为空的话,那SQL语句成什么样子了?
    还有你的#13,#10是什么意思?
      

  8.   

    var
      lSQL:String;
    begin
    lSQL:='SELECT nsmc,qiyecode,SUM(sp1) AS sumsp,SUM(sp2) AS sumsp2,SUM(sp3) AS sumsp3,'+#13+#10 +
          'SUM(sp4) AS sumsp4,SUM(rk1) AS sumrk1,SUM(rk2) AS sumrk2,SUM(rk3) AS sumrk3,'+#13+#10  +
          'SUM(rk4) AS sumrk4,SUM(qj1) AS sumqj1,SUM(qj2) AS sumqj2,SUM(qj3) AS sumqj3,'+#13+#10  +
          'SUM(qj4) AS sumqj4'+#13+#10 +
          'FROM main'+#13+#10  +
          'where'+#13+#10; 
         if ComboBox3.Text<>'' then
           lSQL:=lSQL+' nsmc='+Char(39)+ComboBox3.Text+Char(39)+')';
         if ComboBox4.Text<>'' then
           lSQL:=lSQL+' and qiyecode='+Char(39)+ComboBox4.Text+Char(39)+')';
         lSQL:=lSQL+' GROUP BY nsmc,qiyecode';
    with Query1 do 
    begin
      Close;
      SQL.Clear;
      SQL.Text:=lSQL;
      try
        Open;
        ShowMessage('欢迎使用,一共查询到的记录数是:'+IntToStr(Query1.RecordCount));
      except
        {}
      end;
    end;
    end;
      

  9.   

    select sum(m1) as m1,sum(m2) as m2,sum(m3) as m3
    from tablename
    where 企业代码='000001'
    group by m1,m2,m3