gpt4 book ai didi

sql - 解决Bin Packing SQL问题的方法

转载 作者:行者123 更新时间:2023-12-01 11:56:11 24 4
gpt4 key购买 nike

我在sql中有问题,我需要从交易列表中生成装箱单。

资料模型

事务存储在包含以下内容的表中:

  • 交易ID
  • 项目ID
  • 项目数量

  • 每个交易可以有多个项目(以及具有相同交易ID的多个行)。每个项目的数量从1到N。

    业务问题

    该业务要求我们创建一个装箱单,装箱单中的每个订单项均包含框中每个项目的数量。

    每个盒子只能容纳160个物品(它们大小/重量都恰好相同)。根据订单的总计数,我们需要将物品分成不同的盒子(有时甚至将单个物品的收藏也分成两个盒子)

    因此,挑战在于采用该数据模式并得出结果集,其中包括每个框中有多少个项目。

    我目前正以一些不太漂亮的方式强制执行此操作,并想知道是否有人有一个我忽略的优雅/简单的解决方案。

    输入/输出示例

    我们确实需要隔离每个盒子中最终有多少个物品...例如:

    顺序1:

    项目A的
  • 100项目B的
  • 100项目C的
  • 140
  • 这将在结果集中产生三行:
  • 方框1:A(100),B(60)
  • 方框2:B(40),C(120)
  • 方框3:C(20)

  • 理想情况下,查询将足够聪明以将所有C放在一起,但是在这一点上-我们对此不太在意。

    最佳答案

    怎么样

    SELECT SUM([Item quantity]) as totalItems
    , SUM([Item quantity]) / 160 as totalBoxes
    , MOD(SUM([Item Quantity), 160) amountInLastBox
    FROM [Transactions]
    GROUP BY [Transaction Id]

    让我知道您要在结果集中查找哪些字段,我可以提出一个更好的字段

    关于sql - 解决Bin Packing SQL问题的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1501132/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com