你不觉得你方法一怪怪的吗?使用sum()统计时你在SUB表中的ID是否都一样?我刚才在试图想用一个select查询语句来解决,可是没成功,不过分两步走应没问题,1先把SUB表建一个视图(注:viewname是个视图不是一个表它不占用空间,但使用和表基本一样)
create view viewname as
select id,sum(number) as number from sub group by id
2就用你的第一句来使用:select master.id,master.date,master.name,viewname.number from viewname,master where viewname.id=master.id;
    

解决方案 »

  1.   

    我试用南郭先生的方法加一个分组语句出现这样的问题(在SQL属性中试的):
      试执行一个不包含其他字段(如:name等)的SQL查询。
    WZS的方法我试了,出现这样的问题:(我把实际的字段等过程附上)
       close;
       SQL.Clear;
       SQL.Add('  create view viewPurBillVouchs as');
       SQL.Add( ' select PBVid,sum(iMoney) as money,sum(iTaxPrice) as TaxPice')
       SQL.Add( ' from PurBillVouchs');
       SQL.Add( ' group by PBVid');
       SQL.Add('select dPBVDate,cPBVCode,cPBVBillType,iPBVTaxRate,iMoney,iTaxPrice');
       SQL.Add('from PurBillVouch,ViewPurBillVouchs');
       SQL.Add(' where PurBillVouch.PBVID=ViewPurBillVouchs.PBVID');  其中:  PurBillVouch(),PurBillVouchs(发票子表体),iMoney(金额)
              iTaxPrice(税额),PBVID(主子表关联字段)
             发票主表头里没有金额,税额等字段。因为可能含有几种产品的金额,
      所以金额,税额等字段都在子表体中。  出现这样的问题是不能‘create table'
      
      请高手再指点
      
      

  2.   

    select master.id,master.date,master.name,sum(sub.number)
    from master,sub
    where master.id=sub.id
    group by master.id,master.date,master.name
      

  3.   

        xzisgood的解决了这问题,不过,如果有十多个字段要显示的,那不是要对十多个字段进行分组吗?速度会减慢。有没有更简练一点的方法?
        请多指教!!!