【发布时间】:2013-12-20 11:26:08
【问题描述】:
我有一个仓库,每个项目编号可以在多个位置。 我有一个可以选择的首选订单。
ITEM LOC IN_STOCK
item_1 loc_1 3
item_1 loc_2 3
item_1 loc_3 2
item_2 loc_1 4
首选顺序是位置名称的函数,为了简单起见,我们就说它是order by loc asc
我有一个订单
item_1 4
item 2 2
我想要一个选择列表进入第三个表。
item_1 loc_1 3
item_1 loc_2 1
item_2 loc_1 2
如果我只是进行连接,我会得到三行 item_1
我想在单个 sql 语句中完成,而不是 RBAR,Row By Agonizing Row 循环。
我正在使用 Mssql 2008
【问题讨论】:
-
您在哪里指定拣货的首选顺序?
-
这不是你想用存储过程做的事情吗?我的意思是检查第一个库存,然后将其添加到第三个表中。
-
M.Ali 喜欢先从loc_1中取4 item_1,然后触发器看到有库存-1,加1,在另一个位置搜索剩下的1? RBAR 似乎更易于管理:-)