Hallo zusammen,
ich habe ein Problem, bei dem ich momentan nicht weiter komme und hier auf Hilfe spekuliere. Ich muss gestehen, dass ich eher aus der Excel Ecke komme und meine Access Kenntnisse mehr oder weniger auf "learing by doing" basieren. Vor ~5-6 Jahren hatte ich das letzte mal mit Access etwas mehr zu tun das war aber auch eher einfachere Aufgaben (Daten Filtern, Zusammenbringen, bisschen was berechnen). Das ganze wäre auch in Excel gegangen aber aufgrund der Datenmenge haben wir das in Access gemacht. Wir haben hier nun ein etwas größeres Revisionsprojekt laufen und hatte das "Glück" in dem Team zu landen und nun habe ich ein Problem bei dem ich gerade nicht voran komme.
Unsere Basis sind Rechnungsdaten der letzten Jahre (ab 2010). Zu diesen Daten müssen diverse andere Informationen hinzugefügt werden. Grundsätzlich lassen sich viele Daten auf Basis von 2 oder 3 Feldern mit diversen Referenztabellen verknüpfen. Hin und wieder spielt allerdings das Rechnungsdatum eine Rolle in den Referenztabellen gibt es aber "nur" Daten für die Gültigkeit der Einträge (Feld Valid_from und Valid_to).
Aktuelle Beispiel (etwas vereinfacht):
Basisdaten:
Kunde: Rechnungsdatum: Land:
Meier 17.03.2014 Deutschland
Meier 09.08.2015 Deutschland
Das Land soll nun in der Referenztabelle mit dem Berater verknüpft werden der zu dem Zeitpunkt verantwortlich war. Die Tabelle sieht so aus:
Kunde Land Berater Valid_from Valid_to
Meier Deutschland Schulze 01.01.2014 31.12.2014
Meier Deutschland Müller 01.01.2015 31.12.2015
Nun würde möchte ich eine Abfrage haben, in der Access mir beim ersten Datensatz Schulze ausgibt und beim zweiten Müller aber da habe ich gerade keine Idee, wie ich das Umsetze. Hab zwar Versucht in der Abfrage was mit "where Rechnungsdatum between Valid_from and Valid_to" zu machen aber das klappt nicht.
Danke für die Hilfe und viele Grüße
Hi, ich konnte Deine Abfrage in einem schnellen Test erfolgreich simulieren. Es braucht dazu eine Unterabfrage
SELECT Rechnungen.Id, Rechnungen.Rechnungsdatum, (SELECT Gueltigkeit.Berater FROM Gueltigkeit
WHERE Rechnungen.Rechnungsdatum BETWEEN Gueltigkeit.Valid_from
AND Gueltigkeit.Valid_to) AS Berater
FROM Rechnungen;
Ich hoffe, der Tip hilft Dir auf die Sprünge. Wenn Du gar nichts damit anfangen kannst, mußt Du Dich in SQL einarbeiten mit Fokus auf Subqueries.
Hi,
danke für den Tip. Werde mir das Thema Subqueries mal anschauen das sagt mir bis jetzt nämlich nix.
Viele Grüße