Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Deichfisch am November 11, 2014, 19:00:41

Titel: kombinierte / berechnete Abfrage
Beitrag von: Deichfisch am November 11, 2014, 19:00:41
Moin Moin,

nach langer Zeit der Access-Enthaltung nun ein Brett vor dem Kopf. Hier wird sicher jemand sehr schnell die Lösung wissen.

Ausgangslage:

Tabelle mit folgenden Feldern:
Name-ID
Einsatzdatum
Einsatzzeit

und eine weitere Tabelle mit:
ID
Name
BeginnDatum1
EndeDatum1
Kunde1
BeginnDatum2
EndeDatum2
Kunde2
BeginnDatum3
EndeDatum3
Kunde3

Ich möchte eine Abfrage, die mir Daten aus beiden Tabellen abbildet.
Die Kunde1-3 Felder sind mit Zahlen hinterlegt.
Es kommt wegen zeitlicher Verschiebung vor, dass gleiche Werte in Kunde 1-3 stehen könne (aber nicht müssen).

Die Abfrage soll nun nur die Einsatzzeiten ausgeben, die bsw. für Kunde1 in der BeginnDatum1 bis EndeDatum1 Zeit erbracht wurden.

Mit den "normalen" Instrumenten funzt das nicht. Entweder ich habe auch Zeiträume aus Beginn2 und Beginn3 darunter oder, wenn ich Kriterien einbaue, dann fehlen Datensätze.

Ich steht auf dem Schlauch...wer weiss Rat?
Titel: Re: kombinierte / berechnete Abfrage
Beitrag von: MzKlMu am November 11, 2014, 19:17:42
Hallo,
ZitatMit den "normalen" Instrumenten funzt das nicht.
kein Wunder, das ist auch ein falsches Datenmodell. Eine Datenbank soll/darf keine Aufzählungsfelder haben (mit einer Zahl hinten ...1, ...2 ).

Die 2.Tabelle sollte etwa so aussehen:
ID
Name
BeginnDatum
EndeDatum
Kunde

Jeweils als ein Datensatz und nicht jeweils Felder mit der Zahl hinten.

Erkläre mal die Zusammenhänge der beiden Tabellen genauer.

PS:
Ein Feld mit dem Namen "Name" darf es in einer DB nicht geben.

Titel: Re: kombinierte / berechnete Abfrage
Beitrag von: Deichfisch am November 12, 2014, 07:36:41
Moin Moin,

hinsichtlich der Bezeichnungen der Felder hat Access nicht gemotzt. Das funktioniert soweit alles.

Zu den Zusammenhängen:
Ein Mitarbeiter ist im Zeitraum a) von [BeginnDatum1] bis [EndeDatum1] bei einem Kunden [Kunde1] im Einsatz. Darauf folgt ein Einsatz in einem anderen Zeitraum bei Kunde2. Die Kunden sind in einer weiteren Tabelle gelistet, so dass ich nur die Kunden-ID in dieser Tbl verwende.

Ich möchte nun aus der Tbl Einsatzzeit, welche über die MitarbeiterID mit der Tbl Mitarbeiter verknüpft ist, die Einsatzzeiten für die verschiedenen Kunden abfragen. Dabei sollen aber nur bsw. die Einsatzzeiten für Kunde1 abgebildet werden. In der MitarbeiterTbl sind bis zu 3 unterschiedliche Einsatzzeiträume für verschiedene Kunden erfasst.

Die Daten umzustrukturieren wird ein großes Problem, da mir die Daten zugeliefert wurden und weit über 10.000 Datensätze enthalten.

im Prinzip müsste die Abfrage lauten:
Nehme [Mitarbeiter X] und gucke wann er bei [Kunde 1] tätig [BeginnDatum1 / EndeDatum1]  war. Suche dazu dann die Einsatzzeiten aus der Tbl Einsatzzeiten.

Wenn ich das über Standardkriterien filtere werden mir Datensätze angezeigt die in Kunde1 = 1 sind, aber auch die Zeiten die dann in Kunde2 = 3 o.ä. sind. Setze ich bei Kunde2 das Kriterium = 1, werden zwar alle anderen Kunden nicht angezeigt, aber auch die Datensätze, welche dort keinen Eintrag haben.

Ich hoffe mich verständlich ausgedrückt zu haben....
Titel: Re: kombinierte / berechnete Abfrage
Beitrag von: MzKlMu am November 12, 2014, 08:18:55
Hallo,
ZitatDu hast es mir ja auch so geschrieben, das wenn die Variable "Abschluss" mit gegeben wird, die ausgewählten Daten wieder im Formular sind.
dann kannst Du mit max. 3 Anfügeabfragen diese eine Tabelle in eine normaliserte Tabelle überführen und für jeden Kunden die Zeiten als je ein Datensatz erfassen. Aus den >10K Datensätzen wird dann eine Tabelle mit >30K DS. Dann kannst Du problemlos über eine Abfrage die Zeiten vergleichen.
Ich halte die normalisierte Tabelle für erforderlich, bzw. ich wüsste keine andere Lösung.

PS:
Den Feldnamen "Name" solltest Du unbedingt ändern, das geht schief. Name ist auch eine gleichnamige (auch im englischen) Eigenschaft von Objekten und Tabu.
Titel: Re: kombinierte / berechnete Abfrage
Beitrag von: ebs17 am November 12, 2014, 12:06:06
ZitatDie Daten umzustrukturieren wird ein großes Problem, da mir die Daten zugeliefert wurden ...
Bei Dir würde ich kein Rührei essen wollen - immerhin werden Eier mit Kalkschale und meist in Pappverpackungen zugeliefert.