Provjera da li je termin slobodan, a bez if ... then ... else
(pisano za FB Sql, lako prepraviti za MySQL)
Ulazni parametri:
- broj sobe (kabineta)
- datum
- početno vrijeme
- krajnje vrijeme
Struktura tablice SOBE:
1. ID - integer
2. SOBA_ID - broj sobe
3. DATUM - datum zauzeća
3. OD_VREMENA - početno vrijeme
4. DO_VREMENA - krajnje vrijeme
Code:
SELECT COUNT(ID) AS BROJ FROM SOBE
WHERE DATUM = :DATUM AND
(
(:POCETNO_VRIJEME >= OD_VREMENA AND :POCETNO_VRIJEME < DO_VREMENA)
OR
(:KRAJNJE_VRIJEME > OD_VREMENA AND :KRAJNJE_VRIJEME <= DO_VREMENA)
)
rezulat koji vraža SLQ je broj termina u koje ulazi novi. Ako je 0 - ne preklapa se niti s jednim terminom.
sql dozvoljava isto vrijeme za krajnje i sljedeće početno. tako su OK termini:
1. 08,00 - 10,00
2. 10,00 - 11,00
ako se znak '>' tj '<' zamjeni sa '>=' tj. '<=', početno vrijeme sljedećeg termina će morati biti bar za 1 sekundu veće od predhodnog krajnjeg.