所以我會先解釋整個問題,然後解釋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