select a.商品,sum(c.商品价格)
from 消费表 a  inner join 价格表 b on a.商品编号=b.商品编号
where a.帐单编号=''
group by a.商品

解决方案 »

  1.   

    回复人: fling_boy(andy) ( ) 信誉:100 账单表在这个查询时是没什么用,他里记录了结账时间,这样就不会连几年前的账都翻出来了
      

  2.   

    你最好列出表结构的关键字段和想返回结果的样子。
    你上面说要单项消费统计,现在又要不同的商品统计在一条记录里。
    是不是这样:
    单号  商品A  商品B  商品C   商品D ...
    001    100    200   100       10
    002    30     120    90      50
    ..
    ..
      

  3.   

    OK,大致上就是这样了!比如说一个顾客的消费记录是这样的:
    在账单表里:
    账单编号:[szdbh]:20030101001
    结账时间:[djzsj]:2003-01-01 12:14:24
    应收款:  [nysk]:235
    实收款:  [nss]:230
    在消费表里:
    账单编号:[szdbh]:20030101001
    商品名称:[spmc]:香烟
    数量:    [nsl]: 2
    价格:    [ndj]: 10
    账单编号:[szdbh]:20030101001
    商品名称:[spmc]:黑烟
    数量:    [nsl]: 2
    价格:    [ndj]: 10
    账单编号:[szdbh]:20030101001
    商品名称:[spmc]:白酒
    数量:    [nsl]: 2
    价格:    [ndj]: 100
    账单编号:[szdbh]:20030101001
    商品名称:[spmc]:红酒
    数量:    [nsl]: 2
    价格:    [ndj]: 100
    账单编号:[szdbh]:20030101001
    商品名称:[spmc]:绿茶
    数量:    [nsl]: 2
    价格:    [ndj]: 10
    账单编号:[szdbh]:20030101001
    商品名称:[spmc]:红茶
    数量:    [nsl]: 1
    价格:    [ndj]: 5价格表里是:
    商品名称:[spmc]:香烟
    商品类型:[spxl]:烟类
    商品名称:[spmc]:黑烟
    商品类型:[spxl]:烟类
    商品名称:[spmc]:红酒
    商品类型:[spxl]:酒类
    商品名称:[spmc]:白酒
    商品类型:[spxl]:酒类
    商品名称:[spmc]:绿茶
    商品类型:[spxl]:茶类
    商品名称:[spmc]:红茶
    商品类型:[spxl]:茶类得到的结果应该是:
    账单编号       烟类消费    茶类消费     酒类消费
    20030101001        20        15           200这样应该很了解了吧??
      

  4.   

    sql server :select a.账单编号, sum(case when b.商品类型='烟类' then c.数量 * c.价格 else 0 end) as 烟类,
                 sum(case when b.商品类型='酒类' then c.数量 * c.价格 else 0 end) as 酒类,
                 sum(case when b.商品类型='茶类' then c.数量 * c.价格 else 0 end) as 茶类
    from 消费表 c inner join 账单表 a on a.账单编号=c.账单编号  
                 inner join  价格表 b on b.商品名称=c.商品名称
    where a.账单编号='20030101001'
    group by a.账单编号
      

  5.   

    access:
    select a.账单编号, sum(iif(b.商品类型='烟类', c.数量 * c.价格,0)) as 烟类,
                      sum(iif(b.商品类型='烟类', c.数量 * c.价格,0)) as 酒类,
                      sum(iif(b.商品类型='烟类', c.数量 * c.价格,0)) as 茶类
    from 消费表 c inner join 账单表 a on a.账单编号=c.账单编号  
                 inner join  价格表 b on b.商品名称=c.商品名称
    where a.账单编号='20030101001'
    group by a.账单编号
    我用了汉语字段,你应该可以看明白。
    复制过来都乱了,你自己再复制到分析器里看吧。
    上面写的是固定的,如果类型不固定,那你要先找出所有类型再动态生成查询语句了,不过也不难。
      

  6.   

    请问那个inner join 是做什么用的??