所以我会先解释整个问题,然后解释SQL编码中问题出在哪里。根据通道方向重新组织一个选择列表
我有一组数据是通过一个仓库的选择列表,我基本上试图重新组织这些数据以遵循每个通道中的一个方向。
所以例如,这里是一个选择列表
TRIPID stopseq AISLE仓
216 1 PV 71
216 14:00 64
216 3 PL 47
216 4 PM 36
216 5 PL 32
216 6 PL 88
216 7 PJ 49
216 8 PJ 29
216 9 PJ 20
216 10 PJ 19
216 11 PI 22
216 12 PI 45
216 13 PN 33
216 14 PN 28
,因为过道只能走一条路,有的上升,有的在这种情况下,降
,我希望重新组织该使得走廊PJ上升(选取7,8,9,10) ,所以我希望它通过选项列表并根据走道的升序或降序对picksequence进行重新排序。我只关注这个例子中的一个通道,所以即时查找将循环遍历表的查询,并重新组织PJ列的记录,以便以相反的顺序进行。类似于
216 7 PJ 19
216 8 PJ 20
216 9 PJ 29
216 10 PJ 49
但我只试图影响这些行现在。 到目前为止,我已经创建了一个游标,其中包含一个CTE。像这样的东西。
declare inner_cursor cursor scroll
for select aisle from table_input
open inner_cursor
fetch next from inner_cursor into @aisle
while @@fetch_status = 0
begin
if @aisle in ('PJ')
begin
with C as
(select stopseq, 0 + row_number() over (order by bin desc) as newtripstop
from SIM_Input_reschedule
)
update C
set tripstopseq = newtripstop
end
但只会为了通过段数的整个列表,所以我试图通过添加
begin
with C as
(select tripstopseq, 0 + row_number() over (order by bin asc) as newtripstop, aisle
from SIM_Input_reschedule
where AISLE = @aisle
)
update C
set tripstopseq = newtripstop
end
增加对过道 约束但受影响的表中没有行。任何帮助表示赞赏。我可能一直在与CTE采取完全错误的做法,所以只是说如果你想到一个更好的方法来做到这一点。
CTE选择是否为您提供newtripstop字段中的所需值? – Bulat 2014-09-05 17:04:13