Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi freien Belegungszeitraum ermitteln (https://www.delphipraxis.net/12792-freien-belegungszeitraum-ermitteln.html)

Rolf Rostig 4. Dez 2003 19:22

Re: freien Belegungszeitraum ermitteln
 
Hallo Rainer,

Zitat:

Das Ganze ist doch etwas komplizierter.
Die Befürchtung hatte ich auch schon. Würde mich freuen, wenn dir am Wochenende etwas einfällt.

Gruss
Rolf

Robert_G 4. Dez 2003 22:38

Re: freien Belegungszeitraum ermitteln
 
Ich glaube so könnte es gehen:

SQL-Code:
SELECT COUNT(t.raum) CountRes
FROM  T_Daten t
WHERE t.Raum = :RaumNo AND
       t.Raum NOT IN (SELECT x.Raum
                      FROM  T_Daten x
                      WHERE x.Anfang BETWEEN :StartTM AND :EndTm OR
                             x.Ende  BETWEEN :StartTM AND :EndTm)
Wenn Start- oder Endzeit zwischen den gegeben Werten stehen, gilt der Raum als belegt.

Hoffe ich habe dein Problem richtig verstanden.

Rolf Rostig 5. Dez 2003 09:11

Re: freien Belegungszeitraum ermitteln
 
Hallo GeorgeWNewbie,

ja, es funktioniert.
Ich habe die Abfrage etwas angepasst.


SQL-Code:
SELECT distinct t.raum
FROM  T_Daten t
WHERE t.raum = :raumNo AND
       t.raum NOT IN (SELECT x.raum
                      FROM  T_Daten x
                      WHERE x.Anfang BETWEEN :StartTM AND :EndTm OR
                             x.Ende  BETWEEN :StartTM AND :EndTm)

Vielen Dank
Rolf

r_kerber 7. Dez 2003 17:27

Re: freien Belegungszeitraum ermitteln
 
Hallo Rolf,

mir ist nicht ganz klar, was die Abfrage t.raum = :raumNo bezwecken soll. Alle freien Räume solltest Du so erhalten
SQL-Code:
select distinct raum
from Belegung
where Raum not in
  (select Raum from Belegung
   where ende between '12.01.2004' and '18.01.2004'
   or anfang between '12.01.2004' and '18.01.2004');

Rolf Rostig 8. Dez 2003 15:27

Re: freien Belegungszeitraum ermitteln
 
Hallo,

mein Problem ist leider noch nicht gelöst.
Wenn ein Raum vom '12.01.2004' bis '18.01.2004' als belegt eingetragen ist und ich frage nach
'14.01.2004' bis '16.01.2004'
wird auch der belegte Raum als frei zurück gegeben.
Nur wenn ich die gebuchten Zeiten abfrage, wird der Raum als nicht frei zurück gegeben.

Aber so kommt es zur Kollision.

r_kerber 8. Dez 2003 15:37

Re: freien Belegungszeitraum ermitteln
 
Stimmt. :?

Funky-Sepp 8. Dez 2003 15:41

Re: freien Belegungszeitraum ermitteln
 
Probiers mal so

SQL-Code:
select distinct raum
from Belegung
where Raum not in
  (select Raum from Belegung
   where '14.01.2004' between anfang and ende
   or '16.01.2004' between anfang and ende);
[edit]hatte jetzt doch glatt das falsche Datum[/edit]
hoffe es klappt

r_kerber 8. Dez 2003 15:41

Re: freien Belegungszeitraum ermitteln
 
Und was hältst Du davon?
SQL-Code:
select distinct raum
from Belegung
where Raum not in
  (select Raum from Belegung
   where '14.01.2004' between anfang and ende
   or '16.01.2004' between anfang and ende);

Rolf Rostig 8. Dez 2003 16:00

Re: freien Belegungszeitraum ermitteln
 
Hey, ich komm ja gar nicht hinterher :lol:

ich will nicht nerven, aber wenn ich abfrage:

'10.01.2004' bis '22.01.2004' wird der Raum als frei zurück gegeben. :wall:

Treffnix 8. Dez 2003 16:10

Re: freien Belegungszeitraum ermitteln
 
Hi, wie wärs denn mit
SQL-Code:
Where Start <= '16.01.2004' AND Ende >= '14.01.2004'
?


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:48 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz