0

这是一个很难的问题,我希望我能在这里得到答案。

问题是找到合适尺寸的盒子,让物流业务在运输时节省资金。

我们有 2 张桌子,分别是盒子和产品。

Boxes 表包含每个盒子的每个 ID 和尺寸。“w”代表宽,“d”代表深度,“h”代表高度。为方便起见,请假设我们只有 3 盒样品。

产品表还包括产品 ID、尺寸。尺寸与盒子表的含义相同。'layable' 是指产品不仅可以直接包装,还可以进行可放置。例如,产品“g”是一个易碎的瓶子,无法在盒子中放置水平位置。因此,这是可放置列中的“n”。

这个问题需要用正确的尺寸框查询每个产品ID。正确尺寸的盒子意味着产品需要与空间最小的盒子一起运输。

希望您的帮助。谢谢。

盒子:

尺寸 w d H
小号 353 250 25
450 350 160
大号 610 460 460

产品:

ID w d H 可铺设
一个 350 250 25 是的
b 450 250 160 是的
C 510 450 450 是的
d 350 250 25 是的
e 550 350 160 是的
F 410 400 430 n
G 350 240 25 n
H 450 350 160 n
一世 310 360 430 n

预期输出:

ID 尺寸
一个 小号
b
... ……
... ……
... ……
G 小号
4

1 回答 1

1

嗯。. . 我不太确定“可放置”如何适应。但是您想要最小的盒子,它与每个尺寸一样大或更大。基本思想是:

select p.*,
       (select b.size
        from boxes b
        where b.w >= p.w and b.d >= p.d and b.h >= p.h
        order by b.size desc -- happens to works because S > M > L
        limit 1
       ) as size
from products p
于 2021-02-10T00:20:29.187 回答