gpt4 book ai didi

sql - 使用 Oracle SQL 作为匹配引擎

转载 作者:行者123 更新时间:2023-12-04 15:44:26 26 4
gpt4 key购买 nike

我不确定我在寻找什么是可能的,但考虑一下肯定很有趣。我的目标是优化一个仓库的布局,但是这个问题也适用于其他场景。

我有一个位置列表,到门的距离和它们所在的区域(例如,A 区 = 冷藏,B 区 = 环境):

位置区域距离
A1 A 1
A2 A 3
A3 A 5
A4 A 7
B1 B 2
B2 B 4
B3 B 6
B4 B 8

我还有一个产品 list ,它们被挑选的次数和它们的区域(A 区 = 需要冷藏的产品,B 区 = 需要外部冷藏的产品,A/B 区 = 没有限制的产品)

每天选择产品区
牛奶A 8
生菜 A/B 7
面包 B 6
巧克力 B 5
西红柿 A/B 4
干意大利面 B 3
牛肉 A 2
鸡A 1

如果我只对优化挑选产品的距离感兴趣,我会将挑选最多的放在离门最近的地方。我通过 ROW_NUMBER 和 ORDER BY 距离和选择连接两个表来做到这一点。

然而,我真的很关心产品区,因为我不能把我的面包存放在冷藏区(它可能会湿透)。此外,我知道生菜可以存放在冷藏或非冷藏区域。

此外,应该有一个条件确保所有产品都分配一个空间(8 个空间 8 个产品)

手动做我会得到。


位置区域距离产品区域每天挑选
A1 A 1 牛奶 A 8
B1 B 2 生菜 A/B 7
A2 A 3 西红柿 A/B 4
B2 B 4 面包 B 6
A3 A 5 牛肉 A 2
B3 B 6 巧克力 B 5
A4 A 7 鸡 A 1
B4 B 8 干意大利面 B 3

我查看了 SQL 模式匹配,但没有成功。此外,我编写了一个迭代 VBA 函数,该函数在区域中使用“保留”空间,但这对于家用 PC 来说会很慢。

最后,谢谢!我一直在阅读 stackoverflow 中的帖子来解决我所有的问题,但我无法解决这个问题!!

最佳答案

一种。从这个sql开始:
select *
from product p left outer join location l on (INSTR(p.zone, l.zone)>0)
order by p.pickperday desc, l.distance asc;

湾写一个存储过程,你

  • 创建一个哈希集
  • 在结果集上开始循环
  • 获取当前元素,如果它在哈希集中还没有准备好,并且位置在哈希集中也没有准备好,则将其插入到哈希集中
  • 返回哈希集列表

  • 如何编写这样的程序: http://docs.oracle.com/cd/B28359_01/java.111/b31225/cheight.htm#CHDCDHJD

    用于检测:
    CREATE TABLE "PRODUCT" (    "PRODUCT" VARCHAR2(20), "ZONE" VARCHAR2(20), "PICKPERDAY" VARCHAR2(20));
    CREATE TABLE "LOCATION" ( "LOCATION" VARCHAR2(20), "ZONE" VARCHAR2(20), "DISTANCE" VARCHAR2(20));

    Insert into LOCATION (LOCATION,ZONE,DISTANCE) values ('A1','A','1');
    Insert into LOCATION (LOCATION,ZONE,DISTANCE) values ('B1','B','2');
    Insert into LOCATION (LOCATION,ZONE,DISTANCE) values ('A3','A','5');
    Insert into LOCATION (LOCATION,ZONE,DISTANCE) values ('B2','B','4');
    Insert into LOCATION (LOCATION,ZONE,DISTANCE) values ('A2','A','3');
    Insert into LOCATION (LOCATION,ZONE,DISTANCE) values ('B3','B','6');
    Insert into LOCATION (LOCATION,ZONE,DISTANCE) values ('B4','B','8');
    Insert into LOCATION (LOCATION,ZONE,DISTANCE) values ('A4','B','2');

    Insert into PRODUCT (PRODUCT,ZONE,PICKPERDAY) values ('Milk','A','8');
    Insert into PRODUCT (PRODUCT,ZONE,PICKPERDAY) values ('Tomatos','A/B','4');
    Insert into PRODUCT (PRODUCT,ZONE,PICKPERDAY) values ('Bread','B','6');
    Insert into PRODUCT (PRODUCT,ZONE,PICKPERDAY) values ('Dry Pasta','B','3');
    Insert into PRODUCT (PRODUCT,ZONE,PICKPERDAY) values ('Lettuce','A/B','7');
    Insert into PRODUCT (PRODUCT,ZONE,PICKPERDAY) values ('Beef','A','2');
    Insert into PRODUCT (PRODUCT,ZONE,PICKPERDAY) values ('Chocolate','B','5');
    Insert into PRODUCT (PRODUCT,ZONE,PICKPERDAY) values ('Chicken','A','1');

    关于sql - 使用 Oracle SQL 作为匹配引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22640556/

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