表A(消费记录) 字段有:id(主键),money(金额),recordDate(记录时间),bid(主B表关联ID)
表B(人员信息)字段有:id(主键),name(姓名),age(年龄),A表中的信息是每一次的消费记录,B表中是每个人的基本信息现在想用SQL 查出每个人的消费总数,  查出:B.name ,B.age ,sum(A.money) ,查询条件为 where B.name like '%%'

解决方案 »

  1.   

    select b.name,b.age,sum(a.money)
    from a,b
    where a.bid=b.id
      and b.name like '%%'
    group by b.name,b.age
      

  2.   

    为什么不是group by a.bid呢
      

  3.   

    分组字段必须出现在select中,你可以增加a.bid。
      

  4.   

    select b.name,b.age,sum(a.money) as total
    from a inner join b on a.bid=b.id
    where b.name like '%%'
    group by b.name,b.age
      

  5.   


    SELECT B.NAME,B.AGE,NVL(C.M,0)
    FROM B
    LEFT JOIN (SELECT A.BID,SUM(MONEY) FROM A GROUP BY A.BID) C
    ON B.ID = C.BID;
      

  6.   

    少写了一个别名SELECT B.NAME,B.AGE,NVL(C.M,0)
    FROM B
    LEFT JOIN (SELECT A.BID,SUM(MONEY) M FROM A GROUP BY A.BID) C
    ON B.ID = C.BID;
      

  7.   

      select B.name, B.age, sum(nvl(A.money,0))
        from A, B
       where A.bid = B.id
       and   B.name like '%%'
       group by B.name, B.age
      

  8.   


    select b.id,b.name,b.age,sum(a.money)
    from a,b
    where a.bid=b.id
      and b.name like '%%'
    group by b.bid,b.name,b.age
    order by b.bid,b.name,b.age
      

  9.   


    select B.name ,B.age
    (seelct sum(A.money) from 表A A where B.id=A.bid)  as sum_money
    from B表 B
    where B.name like '%%'
      

  10.   


    select B.name ,B.age
    (select sum(A.money) from 表A A where B.id=A.bid)  as sum_money
    from B表 B
    where B.name like '%%'
      

  11.   

    SELECT B.NAME,B.AGE,NVL(C.M,0) FROM B LEFT JOIN (SELECT A.BID,SUM(MONEY) M FROM A GROUP BY A.BID) C ON B.ID = C.BID;
      

  12.   

    select B.name,B.age,NVL(C.money,0)
    from B,
    (select A.bid ,sum(A.money) money
    from A group by A.bid) C
    where B.id = C.bid(+)
      

  13.   


    select B.name,
           B.age,
           (seelct sum(A.money) from A where A.bid= B.id)  as sum_money
      from B
     where B.name like '%%'
      

  14.   


    select B.name,
           B.age,
           (seelct sum(NVL(A.money,0)) from A where A.bid= B.id)  as sum_money
      from B
     where B.name like '%%'
      

  15.   

    select c.name,c.age,NVL(c.sum(A.money ),0) from(select A.id,B.name,sum(A.money)from A,B where A.id=B.id and B.name='%%' group by A.id)C
    参考了上面的所有人的,你试试看,可不可以
      

  16.   


    select b.name,b.age,sum(nvl(a.money,0)) from  b left join a on a.id = b.id
    where b.name like '%%'
    group by b.name,b.age
      

  17.   

    select B.name,B.age,A.sum(money) from B,(select bid,sum(money) from 表A group by bid) A where A.bid=B.Id
      

  18.   

    select b.name,b.age,sum(a.money) from A a right join B b on a.bid=b.id group by b.name,b.age;