title image


Smiley Für den einzelnen Vertrag stimmt das ja auch... hier die Lösung.
Hi,



Grundstück 1 hat ja einen Vertrag, der am Stichtag nicht läuft. Es hat aber eben einen weiteren Vertrag, der am Stichtag läuft. Und damit soll es raus.



Habs mal nachgebaut, evtl. passe die Namen der Felder und Tabellen in folgender SQL an:



SELECT Grundstücke.GrundstückID, Sum([Stichtag] Between [Pachtbeginn] And [Pachtende]) AS Stichtag_In_Vertragslaufzeit

FROM Grundstücke INNER JOIN Pachtverträge ON Grundstücke.GrundstückID = Pachtverträge.F_Grundstück_ID

GROUP BY Grundstücke.GrundstückID

HAVING (((Sum([Stichtag] Between [Pachtbeginn] And [Pachtende]))=0));



Der Ansatz hier ist: Ermittle für jeden Vertrag (!), ob er am Stichtag (Parameter, kannst Du aber auch direkt reinschreiben) lebt. Das Ergebnisfeld, "Stichtag_In_Vertragslaufzeit", kann nur die Werte -1 (lebt) und 0 (lebt nicht) annehmen. Dieses Feld wird nun pro Grundstück summiert. Wenn die Summe 0 ist, hast Du ein Grundstück gefunden, das am Stichtag in keinem Vertrag lebt und somit frei ist. Summen > 0 sind verpachtete Grundstücke am Stichtag.



Grüßle


Martin
Atrus2711 ät gmx punkt net
Meine Beiträge zu MS Office betreffen stets Version 2000,
wenn nicht anders angegeben.




geschrieben von


Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: