很抱歉重新上传了这个问题,但我真的很想得到答案。
请允许我再次提出这个问题,并希望您的支持。
问题是找到合适尺寸的盒子,让物流业务在运输时节省资金。
我们有 2 张桌子,分别是盒子和产品。
Boxes 表包含每个盒子的每个 ID 和尺寸。“w”代表宽,“d”代表深度,“h”代表高度。为方便起见,请假设我们只有 3 盒样品。
产品表还包括产品 ID、尺寸。尺寸与盒子表的含义相同。'layable' 是指产品不仅可以直接包装,还可以进行可放置。例如,产品“g”是一个易碎的瓶子,无法在盒子中放置水平位置。因此,这是可放置列中的“n”。
这个问题需要用正确的尺寸框查询每个产品ID。正确尺寸的盒子意味着产品需要与空间最小的盒子一起运输。
希望您的帮助。谢谢。
盒子:
BOX_SIZE | W | D | H |
---|---|---|---|
小号 | 353 | 250 | 25 |
米 | 450 | 350 | 160 |
大号 | 610 | 460 | 460 |
产品:
ID | W | D | H | LAYABLE |
---|---|---|---|---|
一个 | 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 |
j | 500 | 500 | 600 | 是的 |
预期输出:
ID | BOX_SIZE |
---|---|
一个 | 小号 |
b | 米 |
... | …… |
... | …… |
... | …… |
G | 小号 |
H | 米 |
一世 | 大号 |
j | 无法使用 |
用于创建和填充表以进行测试的语句:
create table boxes
( box_size char(1) primary key
, w number not null
, d number not null
, h number not null
)
;
insert into boxes (box_size, w, d, h) values ('S', 353, 250, 25);
insert into boxes (box_size, w, d, h) values ('M', 450, 350, 160);
insert into boxes (box_size, w, d, h) values ('L', 610, 460, 460);
create table products
( id varchar2(10) primary key
, w number not null
, d number not null
, h number not null
, layable char(1) check(layable in ('y', 'n'))
)
;
insert into products (id, w, d, h, layable) values ('a', 350, 250, 25, 'y');
insert into products (id, w, d, h, layable) values ('b', 450, 250, 160, 'y');
insert into products (id, w, d, h, layable) values ('c', 510, 450, 450, 'y');
insert into products (id, w, d, h, layable) values ('d', 350, 250, 25, 'y');
insert into products (id, w, d, h, layable) values ('e', 550, 350, 160, 'y');
insert into products (id, w, d, h, layable) values ('f', 410, 400, 430, 'n');
insert into products (id, w, d, h, layable) values ('g', 350, 240, 25, 'n');
insert into products (id, w, d, h, layable) values ('h', 450, 350, 160, 'n');
insert into products (id, w, d, h, layable) values ('i', 310, 360, 430, 'n');
insert into products (id, w, d, h, layable) values ('j', 500, 500, 600, 'y');
commit;