【问题标题】:How do I group or summarize multiple rows where multiple column values are the same using MSSQL2017如何使用 MSSQL2017 对多列值相同的多行进行分组或汇总
【发布时间】:2019-10-25 16:45:42
【问题描述】:

我想汇总这张表中的数据来计算具有相同内容的 NumberOfPallets 总数

15 个托盘,其中包含以下内容:

商品颜色包装数量

Item1 红箔 35 Item2 蓝箔 110

2 个托盘,其中包含以下内容:

商品颜色包装数量

Item1 红色塑料 35 Item3 黄色塑料50

我不知道从哪里开始!

创建表订单 (SalesOrder INT NOT NULL, PalletNo INT NOT NULL, 项目 CHAR(20) NOT NULL, 颜色 CHAR(10) NOT NULL, 包装 CHAR(10) 不是 Null, QtyPerPallet INT 不为空, NumberOfPallets INT 不为 Null)

插入订单 (SalesOrder, PalletNo, Item, Colour,Packing, QtyPerPallet, NumberOfPallets) 价值观 (1, 22, 'ITEM1', 'RED', 'FOIL', 35,5), (1, 22, 'ITEM2', 'BLUE', 'FOIL',110,5), (112, 47, 'ITEM2', 'BLUE', 'FOIL',110,10), (112, 47, 'ITEM1', 'RED', 'FOIL',35,10), (217,1100, 'ITEM1', '红色', '塑料', 35,2), (217,1100, 'ITEM3', '黄色', '塑料', 50, 2)

【问题讨论】:

    标签: grouping sql-server-2017


    【解决方案1】:

    根据我对您问题的理解,了解您希望最终输出的样子会有所帮助

    但是让我知道这是否有效

    select 
    
    item
    ,colour
    ,packing
    ,QtyPerPallet
    ,count(distinct palletNo) number_of_pallets
    
    
    from 
    orders
    
    group by 
    item
    ,colour
    ,packing
    ,QtyPerPallet
    

    【讨论】:

    • 感谢您的代码...但是...它有点复杂。我几乎需要为每个内容完全相同的“托盘类型”分配一个唯一的“密钥”。所以在我的示例中,PalletNo 22 和 47 在 Item、Color、Packing 和 PiecesPerPallet 方面具有相同的内容,并且要构建的托盘总数应该是 15。PalletNo 1100 也是一个独特的构造,即使有一个 Item这对其他 2 个托盘很常见。希望这一切都有意义!
    猜你喜欢
    • 2018-03-23
    • 2014-01-27
    • 2018-08-03
    • 1970-01-01
    • 2011-03-12
    • 1970-01-01
    • 2017-06-18
    • 2013-02-05
    • 2021-08-05
    相关资源
    最近更新 更多