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 ......”则会发生什么?而你的问题可能需要一个算法来解决,而不是简单地通过一个复杂的查询。 –