sql / expert
Snippet
Erkennung von Intervall-Überlappungen mit Self-Joins
Implementiert einen Non-Equi Self-Join, um Planungskonflikte zu erkennen. Durch den Vergleich zweier Mengen von Start- und Enddaten identifizieren wir Zeilen, die dieselbe Ressource zur gleichen Zeit belegen.
snippet.sql
1
2
3
4
5
6
SELECT a.booking_id, b.booking_idFROM room_bookings aJOIN room_bookings b ON a.room_id = b.room_idAND a.booking_id < b.booking_idAND a.start_date < b.end_dateAND a.end_date > b.start_date;
Erklärung
1
a.booking_id < b.booking_id
Verhindert den Vergleich einer Zeile mit sich selbst und stellt sicher, dass jedes Paar nur einmal gemeldet wird.
2
a.start_date < b.end_date AND a.end_date > b.start_date
Standardmäßige relationale Logik zur Identifizierung überschneidender Zeiträume.