表一   (注 Group 唯一)
Group name
1     aa
2     bb
3     bb
4     bb
5     cc
6     cc表二  (注 Group 不唯一)
Group data
1      2
1      3
2      5
3      6
4      1求sql.text: 以表一的 name分组,对表二的data统计

解决方案 »

  1.   

    select name,sum(data) as sumdata from 表2 inner join 表1 on 表2.group=表1.group group by name
      

  2.   

    select a.Group,sum(a.data) from (select 表1.Group,表2.data from 表1 left join 表2 on 表1.group = 表2.group) a group by a.Group
      

  3.   

    看错了,select a.name,sum(a.data) from (select 表1.*,表2.data from 表1 left join 表2 on 表1.group = 表2.group) a group by a.name
      

  4.   

    select a.Group,sum(a.data) from (select 表1.Group,表2.data from 表1 left join 表2 on 表1.group = 表2.group) a group by a.Group 
     
      

  5.   

    楼主用的什么数据库?
    data统计什么? 求和?如果是Mysql数据库select 表1.name, sum(ifnull(表2.data, 0)) from 表1 left join 表2 on 表1.group = 表2.group
    group by test1.name;
      

  6.   

    所有的答案未能通过...
    1 重复的数据,表二 中未出现的组存在查询中
    2 未按表一的 name分组
    3 加入分组的语句出错
      

  7.   

    select name,sum(data) as sumdata from 表2 inner join 表1 on 表2.[group]=表1.[group] group by name
      

  8.   

    你好,
    我是新手,现在想用tquery部件的sql语句实现多表查询。我看资料说在查询之前要把tquery的databasename属性设置为空 ('').现在问题是,这个tquery在进行多表查询的时候,datasource要如何设置?我编写代码的时候给这个属性设置成空属性了(nil)。
    在使用了下面这样的sql语句时,总是提示说数据表不存在。如果我把tquery的datasource设置为第一个数据表的数据库,提示的错误就是第二个数据表不存在,未知的数据库。在编写程序之前没有用bde设置过数据库的别名,在程序中使用数据库时都是采用代码进行相应的属性设置的。希望能给些建议。如果有一个实例的源代码最好不过了。
    谢谢!select name,sum(data) as sumdata from 表2 inner join 表1 on 表2.[group]=表1.[group] group by name下面这些是我自己写的一部分代码
        //userdata is a Tform object. TBresutl1,TBresutl2,TBresutl3 are three TTable objects.
        //TQuery1 is a Tquery object. DSResult is a TDataSource object.
        //Open three database
        userdata.TBresult1.databasename:= 'c:\data\';
        userdata.TBresult1.Tablename:='Result1.DB';
        userdata.TBresult1.Open;
        userdata.TBresult2.databasename:= 'c:\data\';
        userdata.TBresult2.Tablename:='Result2.DB';
        userdata.TBresult2.Open;
        userdata.TBresult3.databasename:= 'c:\data\';
        userdata.TBresult3.Tablename:='Result3.DB';
        userdata.TBresult3.Open;
        //set the Tquery1.databasename and Tquery1.datasource
        userdata.TQuery1.Close ;
        userdata.TQuery1.DatabaseName :='c:\data\';
           
       
        userdata.DSResult.DataSet :=userdata.TbResult ;
        userdata.TQuery1.DataSource := userdata.DSResult1 ;     userdata.TQuery1.DatabaseName :='';
       
        userdata.TQuery1.Sql.Clear ;
        userdata.TQuery1.sql.add('SELECT Result1.field1, Result1.field3, Result2.field1, Result3.field3');
        userdata.TQuery1.sql.add('FROM ":TBResult1:result1.DB" Result1'');
        userdata.TQuery1.sql.add('INNER JOIN ":TBRsult2:Result2.DB" Result2');
        userdata.TQuery1.sql.add('ON  (Result1.field1 = Result2.field1)');
        userdata.TQuery1.sql.add('INNER JOIN ":TBRsult3:Result3.DB" Result3');
        userdata.TQuery1.sql.add('ON  (Result3.field3 = Result1.field1)');
        userdata.TQuery1.sql.add('WHERE ......................  ');
      

  9.   

    group是关键字,请加上中括号以表一name分组,结果为
    aa
    bb
    cc
    没有group怎么和表二连接
    若表一以group(或者group,name)分组,那无意义,因为表一group唯一,返回的结果就是表一LZ请写出你要的结果?
      

  10.   

    表二以group分组,统计data值,然后以group连接表一,再以name分组lz如果是这样的需求,就可以用楼上各位的答案了
    select [name],sum(data) as sumdata from 表2 inner join 表1 on 表2.[group]=表1.[group] group by [name]结果是:
    name sumdata
    aa      5
    bb     12
      

  11.   


    /*
    表结构的脚本
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[g1]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[g1]
    GOif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[g2]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[g2]
    GOCREATE TABLE [dbo].[g1] (
    [g] [int] NULL , 
    [n] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]
    GOCREATE TABLE [dbo].[g2] (
    [g] [int] NULL ,
    [d] [int] NULL 
    ) ON [PRIMARY]
    GO
    */
    select n, sum(d) from 
    (select t1.n, t2.d from [g1] t1, (select [g] g, sum(d) d from [g2] group by [g]) t2
    where t1.g = t2.g) mm
    group by n
      

  12.   

    结果:
    aa   5
    bb   12
      

  13.   

    select sum(b.date) as xsj from 表1 a,表2 b where a.group=b.group group by a.name