姓名  进货数  单价    货名
小张  4       20.24   西瓜
小张  2       12.01   苹果
小张  5       20.45   梨子
小黄  2       15.25   爆米花
想要查询以下结果
姓名 姓名 进货数 单价  货名   小结     总金额
小张  4       20.24   西瓜    80.96    203.23 
小张  2       12.01   苹果    20.02    203.23 
小张  5       20.45   梨子    102.25   203.23 
小黄  2       15.25   爆米花  30.5     203.23 
小结是计算(进货数*单价),总金额是将几个小结加起来的,所以是相同的了,这样的sql语句能写吗?
这样做的目的是为了显示清单,最后显示一个总金额,或者总金额显示一个就够了

解决方案 »

  1.   

    select * , 小结 = 单价*进货数,总金额 =(select sum(单价*进货数) from tb) from tb
      

  2.   

    create table tb(姓名 varchar(10), 进货数 int, 单价 decimal(18,2),   货名 varchar(10))
    insert into tb values('小张' , 4 ,      20.24  , '西瓜')  
    insert into tb values('小张' , 2 ,      12.01  , '苹果')  
    insert into tb values('小张' , 5 ,      20.45  , '梨子')
    insert into tb values('小黄' , 2 ,      15.25  , '爆米花')
    goselect * , 小结 = 单价*进货数,总金额 =(select sum(单价*进货数) from tb) from tb 
     
    drop table tb/*
    姓名         进货数         单价                   货名         小结                              总金额                                      
    ---------- ----------- -------------------- ---------- ------------------------------- ---------------------------------------- 
    小张         4           20.24                西瓜         80.96                           237.73
    小张         2           12.01                苹果         24.02                           237.73
    小张         5           20.45                梨子         102.25                          237.73
    小黄         2           15.25                爆米花        30.50                           237.73(所影响的行数为 4 行)
    */
      

  3.   

    select 货名,sum(进货数*单价) sumid from table1 group by 货名 
    union all 
    select '',sum(进货数*单价) sumid from table1