i mit Auto in Zügen Reservierung arbeite vorschlagen Stühle abfragenSQL Query Stühle vorschlagen
es soll Reisedatum nehmen, von Station zu Station und keine Sitz als Bindevariablen und retrive Stühle, die in Sequenz und nicht reserviert. zum Beispiel: wenn Stuhl 1,3 ist reserviert und Stühle 2,4,5 nicht reserviert und Benutzer eingegeben 2 Sitze, dann Abfrage sollte vorschlagen 4,5 und nicht 2,4
Ich versuche zu verwenden lead
oder lag
analyic Funktionen
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
Ausgang: output screenshot
Effektiv benötigen Sie Inseln von Sitzen, http://www.orafaq.com/node/2865 – Serg
Ihre Anforderung scheint nicht klar genug. Wenn wir nicht reserviert haben: '2, 4, 5, 11, 12, 13, 14, 31, 32, 33, 34, 35' und Benutzer geben ** 5 ** ein, was würden wir vorschlagen? Und was wäre wenn ... 14, 16, 31 ... statt "... 14, 31, ...". Und Ihr Problem kann einen Algorithmus zur Lösung und nicht nur eine komplexe Abfrage benötigen. –