【发布时间】:2021-12-25 02:03:00
【问题描述】:
我正在尝试编写一个 SQL 查询,其中将提取包含所有项目及其尺寸的数据,并且必须满足以下条件:长度 >=20 或宽度 >=14 或高度 >=10(所有项目不适合 20x14x10 的容器)。问题是高度可能大于长度(想象在空间中翻转项目)。我写了一个代码,但我认为它不会涵盖所有情况。下面是我试过的代码:
select
items.bin_id,
items.bin_type_name,
items.bin_usage_name,
items.isbn,
items.boo,
items.quantity,
ma.pkg_height,
ma.pkg_width,
ma.pkg_length,
ma.pkg_weight,
items.owner
from items
left join BOOKER.D_MP_PHYSICAL_ITEMS ma
on items.boo = ma.asin
where ((ma.pkg_length >= 20 AND ma.pkg_width >= 14 AND ma.pkg_height >= 10) OR
(ma.pkg_length >= 14 AND ma.pkg_width >= 10 AND ma.pkg_height >= 20) OR
(ma.pkg_length >= 10 AND ma.pkg_width >= 20 AND ma.pkg_height >= 14) OR
((ma.pkg_length >= 20 AND ma.pkg_width >= 10 AND ma.pkg_height >= 14) OR
(ma.pkg_length >= 14 AND ma.pkg_width >= 20 AND ma.pkg_height >= 10) OR
(ma.pkg_length >= 10 AND ma.pkg_width >= 14 AND ma.pkg_height >= 20))
我的另一个想法是从项目的尺寸中选择最大值并检查它是否大于 20,然后选择最小值并查看它是否大于 10 并检查最后一个数字是否大于 14(以防万一其中两个第一个值给出 FALSE),但我不能把它放在 SQL 中
【问题讨论】:
标签: sql comparison dimensions