0
我在火車預訂的工作與自動提示椅子查詢SQL查詢建議椅
它應該採取的行程日期,從站,車站也沒有座位的綁定變量和retrive在序列椅子和不保留。例如:如果椅子1,3被保留,而椅子2,4,5不保留並且用戶輸入2個椅子,則查詢應該建議4,5而不是2,4
我正在嘗試使用lead
或lag
analyic功能
select * from
(
select row_number() over (order by seat_no) rno, seat_no,lag(seat_no,1,0) OVER (ORDER BY seat_no) lag , lead(seat_no,1,0) OVER (ORDER BY seat_no) lead
from TRAIN_LINE_DETAILS tld,train_lines tl
where TRIP_DATE = to_date(:tipDate,'dd-mm-yyyy')
and tld.line_code = tl.line_code
and station_from =:sfrom
and station_to =:sto
and is_reserved = 0
)
where rno <= :n
--and lead-1 = seat_no or lag+1 = seat_no
實際上,您需要座位的島嶼,請參閱http://www.orafaq.com/node/2865 – Serg
您的要求似乎不夠清楚。如果我們沒有保留:'2,4,5,11,12,13,14,31,32,33,34,35'和用戶輸入** 5 **,那麼我們會建議什麼?如果「...... 14,16,31 ......」而不是「...... 14,31 ......」則會發生什麼?而你的問題可能需要一個算法來解決,而不是簡單地通過一個複雜的查詢。 –