数据表tb结构数据如下:
名称      数量      价格
A        1         30
B        2         80
A        2         10
B        3         30
A        1         40要想输出如下结果:
名称    数量      价格小计
A      4      90
B    2      250请问该如何用一条SQL语句完成。数据库为Access,不能使用过程。谢谢!

解决方案 »

  1.   

    create table tb(名称 nvarchar(10),数量 int,价格 int)
    insert into tb select 'A',1,30
    insert into tb select 'B',2,80
    insert into tb select 'A',2,10
    insert into tb select 'B',3,30
    insert into tb select 'A',1,40
    go
    select 名称,sum(数量)as 数量,sum(数量*价格) as 价格小计 from tb group by 名称
    /*
    名称         数量          价格小计
    ---------- ----------- -----------
    A          4           90
    B          5           250(2 行受影响)
    */go
    drop table tb
      

  2.   

    谢谢,这样是行的,我搞漏了一点就是。这是一个需要二次数据筛选。
    tb表为:
    名称 属性  数量 价格
    A   a1    1    30
    B   a1    2    80
    A   a2    2    10
    B   a2    3    30
    A   a1   1      40输出显示如下结果:
    名称  属性   数量   价格小计
    A    a1    2     70
    A     a2   2        10   
    B    a1   2     80
    B     a2    3       30麻烦帮下忙,马上结贴。
      

  3.   

    你这结果有问题吧:
    create table tb(名称 nvarchar(10),属性 nvarchar(10),数量 int,价格 int)
    insert into tb select 'A','a1',1,30
    insert into tb select 'B','a1',2,80
    insert into tb select 'A','a2',2,10
    insert into tb select 'B','a2',3,30
    insert into tb select 'A','a1',1,40
    go
    select 名称,属性,sum(数量)as 数量,sum(数量*价格) as 价格小计 
    from tb group by 名称,属性
    order by 1,2
    /*
    名称         属性         数量          价格小计
    ---------- ---------- ----------- -----------
    A          a1         2           70
    A          a2         2           20
    B          a1         2           160
    B          a2         3           90(4 行受影响)
    */go
    drop table tb