Der Ansatz von MyRealName ist schon richtig. Man darf aber nicht die Gesamtsumme der Überschneidungen zählen, sondern muss dies für Beginn und Ende separat.
Hat man dann für den Beginn oder für das Ende mehr als die maximal zulässigen Überschneidungen, dann gehts nicht. Sonst schon.
Nur hingedaddelt und nicht getestet:
SQL-Code:
select Sum(Start) as Start, Sum(End) As End from (
select count(*) as Start, 0 As End from Termine
where StartDate between :NewStartDate and :NewEndDate
union all
select 0 as Start, Count(*) As End from Termine
where EndDate between :NewStartDate and :NewEndDate
)
Wenn nun Start >= maximale Terminzahl ist oder End >= maximale Terminzahl ist, muss die Terminablage abgelehnt werden. Andernfalls müsste es gehen (sofern ich da jetzt keinen Denkfehler gemacht gabe, was ich nicht ausschließen will).
Bei dem Beispiel von Uwe Raabe müsste eine Terminanlage erfolgen können.