Hallo
Ich habe eine Tabelle für Mitarbeiter, eine weitere mit Projekten und eine dritte mit den geleisteten Stunden bezogen auf die Mitarbeiter und die Projekte.
- Mitarbeiter
- Projekte
- Stunden (von einem bestimmten Mitarbeiter für ein bestimmtes Projekt geleistet)
Nun möchte ich zwei Dinge hiermit machen und ich weiß nicht wie.
1. In der Tabelle Mitarbeiter trage ich den Stundenlohn ein. Bei einer Erhöhung des Gehalts wird der hier entsprechend geändert.
Nun habe ich das Problem, dass der neue Stundenlohn in meinen Abfragen auch für alle vorhergehenden Monate und Jahre verwendet wird.
Wie kann ich das verhindern?
Kann man vielleicht die vorhandenen Daten einfrieren oder so?
2. Ich möchte in meinen Berichten zusätzlich zu den Infos, die ich aus der zugrunde liegenden Abfrage ziehe, auch noch andere Infos aus einer anderen Abfrage oder Tabelle zB in der Kopfzeile anzeigen. Geht das, und wenn ja, wie?
Kann mir jemand von Euch helfen?
Danke,
toby
Daten sollen sich nicht verändern
Moderator: Moderatoren
Re: Daten sollen sich nicht verändern
Das ist ein "klassischer" Fehler, der oft beim konzeptionellen Aufbau von Datenbanken gemacht wird.tobydom hat geschrieben:. In der Tabelle Mitarbeiter trage ich den Stundenlohn ein. Bei einer Erhöhung des Gehalts wird der hier entsprechend geändert.
Nun habe ich das Problem, dass der neue Stundenlohn in meinen Abfragen auch für alle vorhergehenden Monate und Jahre verwendet wird.
Wie kann ich das verhindern?
Die Lösung wäre, in der Tabelle Stunden zusätzlich noch den für den entsprechenden Mitarbeiter zu diesem Zeitpunkt geltenden Stundenlohn einzutragen (da dort aller Voraussicht nach sowieso die Mitarbeiter-ID drin steht, kannst Du das bei jedem neuen Stunden-Eintrag automatisch aus Deiner Mitarbeiter-Tabelle übernehmen lassen).
So kannst Du Deine Mitarbeiter-Tabelle immer auf dem aktuellen Stand halten, was den Lohn angeht, verwurstest aber nicht schon bestehende Daten.
Re: Daten sollen sich nicht verändern
Hallo Toby,
ich würde diese Infos total voneinander abkoppeln, d.h.:
Erstelle eine separate Tabelle mit folgender Struktur
Mitarbeiter_ID; Gehalt, gültig_von; gültig_bis
Somit kannst Du die Gültigkeit des Gehalts pro Mitarbeiter in einem Zeitraum definieren und auch abfragen.
Gruß Barlee
ich würde diese Infos total voneinander abkoppeln, d.h.:
Erstelle eine separate Tabelle mit folgender Struktur
Mitarbeiter_ID; Gehalt, gültig_von; gültig_bis
Somit kannst Du die Gültigkeit des Gehalts pro Mitarbeiter in einem Zeitraum definieren und auch abfragen.
Gruß Barlee
Re: Daten sollen sich nicht verändern
Hi Barlee,
vielen Dank für den Tipp.
Ich habe es genauso gemacht und stehe nun vor dem nächsten Problem.
Ich hoffe Du kannst mir hier weiterhelfen.
Folgende Situation:
tabelle Mitarbeiter:
MA-ID, Vorname, Nachname
tabelle Projekte:
ID, Projektname, Auftragssumme
tabelle Stundenlohn:
ID, MA-ID, Stdlohn, gültigvon, gültigbis
tabelle Arbeitstunden:
ID, Datum, Projekt-ID, MA-ID, Arbeitsstunden
Nun möchte ich eine Abfrage basteln, die zum Beispiel folgendes ausgibt:
23.3.2010, Müller-Schulze, Projekt XY, 7 Arbeitsstunden, Stundenlohn, Gesamtlohn
Wie muss die Abfrage aussehen, die aus der Tabelle Stundenlohn den korrekten Arbeitslohn 'herausfiltert'?
Ich hoffe ich habe mein Problem klar genug erläutert und Du kannst mir helfen.....
Viele Grüße,
Toby
vielen Dank für den Tipp.
Ich habe es genauso gemacht und stehe nun vor dem nächsten Problem.
Ich hoffe Du kannst mir hier weiterhelfen.
Folgende Situation:
tabelle Mitarbeiter:
MA-ID, Vorname, Nachname
tabelle Projekte:
ID, Projektname, Auftragssumme
tabelle Stundenlohn:
ID, MA-ID, Stdlohn, gültigvon, gültigbis
tabelle Arbeitstunden:
ID, Datum, Projekt-ID, MA-ID, Arbeitsstunden
Nun möchte ich eine Abfrage basteln, die zum Beispiel folgendes ausgibt:
23.3.2010, Müller-Schulze, Projekt XY, 7 Arbeitsstunden, Stundenlohn, Gesamtlohn
Wie muss die Abfrage aussehen, die aus der Tabelle Stundenlohn den korrekten Arbeitslohn 'herausfiltert'?
Ich hoffe ich habe mein Problem klar genug erläutert und Du kannst mir helfen.....
Viele Grüße,
Toby
Re: Daten sollen sich nicht verändern
Toby,
folgender Ansatz, den Du natürlich ausbauen musst.
Versuche darauf aufbauend einmal einen Abfrageentwurf.
Gruß Barlee
Du nimmst das Datum aus der Tabelle "Arbeitsstunden" und fragst ab, ob dieses im definierten Gültigkeitszeitraum der Tabelle "Stundenlohn" liegt....die aus der Tabelle Stundenlohn den korrekten Arbeitslohn 'herausfiltert'?
folgender Ansatz, den Du natürlich ausbauen musst.
Code: Alles auswählen
SELECT ...
"b"."Stdlohn"
FROM "Arbeitsstunden" AS "a", "Stundenlohn" AS "b"
WHERE "a"."Datum" BETWEEN "b"."gültigvon" AND "b"."gültigbis"
AND "a"."MA-ID" = "b"."MA-ID"
Gruß Barlee
Re: Daten sollen sich nicht verändern
Ahh.. super.
Der Befehl BETWEEN fehlte mir....
werde es die Tage ausprobieren....
schonmal danke im voraus.
Der Befehl BETWEEN fehlte mir....
werde es die Tage ausprobieren....
schonmal danke im voraus.