超市定单表
订单号   物品
1        啤酒
1        尿布
2        香烟
2        台灯
2        铅笔
3        啤酒
3        尿布写sql找出所有的物品组合  每种组合的销售数量   如下所示物品组合代号          组合内的物品
A                      啤酒
A                      尿布
B                      香烟
B                      台灯
B                      铅笔
组合代号            销售数量
A                     34545
B                      23

解决方案 »

  1.   

    晕  
    title  够吸引人的
      

  2.   

    这是一个面试题  原题就是这样的超市定单表
    订单号 .........物品
    1............. 啤酒
    1 .............尿布
    2 .............香烟
    2 .............台灯
    2 .............铅笔
    3 .............啤酒
    3 .............尿布写sql找出所有的物品组合 每种组合的销售数量 如下所示物品组合代号............. 组合内的物品
    A.......................... 啤酒
    A.......................... 尿布B ..........................香烟
    B ..........................台灯
    B ..........................铅笔这个就像是把订单表分组了  分为A和B   对应上表的 1和2   (3因为和1重复)组合代号 .............销售数量
    A .....................34545  
    B....................... 23
      

  3.   

    SQL Server 2005范例代码查询辞典
      

  4.   

    按这样的组合
    B ..........................香烟
    B ..........................台灯
    B ..........................铅笔那这个组合也是成立的了?
    C ..........................香烟
    C ..........................啤酒
    C ..........................铅笔
    ----------------------------------------
    猜一下if object_id('定单表') is not null drop table 定单表 
    create table 定单表 
    ([订单号] int,
    [物品]  varchar(20),
    [数量] int
    )
    go
    --插入数据
    insert into 定单表 
    select 1,'啤酒',1 union all
    select 1,'尿布',1 union all
    select 2,'香烟',2 union all
    select 2,'台灯',2 union all
    select 2,'铅笔',2 union all
    select 3,'啤酒',3 union all
    select 3,'尿布',3if object_id('组合表') is not null drop table 组合表 
    create table 组合表 
    ([组合代号] varchar(4),
    [组合内的物品]  varchar(20)
    )
    go
    --插入数据
    insert into 组合表 
    select 'A','啤酒' union all
    select 'A','尿布' union all
    select 'B','香烟' union all
    select 'B','台灯' union all
    select 'B','铅笔' --查询
    select 组合代号,sum(数量) as 销售数量 from 定单表 left join 组合表 on  物品=组合内的物品
    group by 组合代号/*
    组合代号 销售数量
    -----------
    A 8
    B 6*/