Autor Beitrag
dm
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 83



BeitragVerfasst: Mo 02.06.03 07:09 
Hallo,

ich habe eine Personalliste wo auch der Urlaub jedes Mitarbeiters eingetragen wird. In der Tabelle/Datenbank(MC Access) steht jeweils der Urlaubsbeginn und das Urlaubsende.

Ich möchte jetzt per SQL - Abfrage Folgendes realisieren :

Situation : Mitarbeiter Hans Hansen hat vom 1.6. bis 30.6. Urlaub.

Wenn ich jetzt für Mitarbeiter Peter Petersen einen Urlaub eintragen möchte, der IN der Urlaubszeit von Hans Hansen liegt soll das Programm mir sagen, dass er zu DER Zeit keinen Urlaub nehmen kann.



Kann mir also jemand dabei helfen eine SQL - Abfrage zu entwerfen, die obwohl sie nur jeweils den ANFANGS un END Wert eines Urlaubs kennt (Datumsformat), sagen kann, ob sich Urlaube/Termine überschneiden ?


Ich bin für jeden guten Vorschlag dankbar.



Gruß Dennis
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Mo 02.06.03 09:05 
hallo,

ich weiß nicht so genau, ob SQL für ms access das Wort Between kennt. Aber wenn ja, solltest du es damit versuchen, dann machst du so was, wie
ausblenden Quelltext
1:
2:
3:
select count(*) from Personalliste
where (anfangsdatum betwenn urlaub_aus_tabelle_anfang and urlaub_aus_tabelle_ende)
  or (enddatum betwenn urlaub_aus_tabelle_anfang and urlaub_aus_tabelle_ende)

wenn nun count > 0 ist, gibt es halt schon einen urlaub in der zeit, bessergesagt überschneidet sich der neue urlaub mit einem vorhandenen.

ohne betwenn geht das auch, dann musst du halt folgendes machen
ausblenden Quelltext
1:
2:
3:
select count(*) from Personalliste
where ((anfangsdatum >= urlaub_aus_tabelle_anfang) and (anfangsdatum <= urlaub_aus_tabelle_ende))
  or ((enddatum >= urlaub_aus_tabelle_anfang) and (enddatum <= urlaub_aus_tabelle_ende))

für eine abfrage, ob der neue urlaub genau in einem anderen liegt, musst du das or einfach durch and ersetzen

Gruß
Ken

Moderiert von user profile iconTino: Code-Tags hinzugefügt.
dm Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 83



BeitragVerfasst: Mo 02.06.03 09:56 
Titel: Danke
Das hört sich sehr gut an, das werde ich mal ausprobieren.

Danke für deine Mühe

Gruß Dennis