Zeiträume

wgress

Neuer Benutzer
Beiträge
2
Hallo zusammen!

An diesem Problem beisse ich mir nun schon seit Tagen die Zähne aus:

Ich habe eine Tabelle (ProjectMembers), die folgende Spalten enthält:
-BenutzerID
-ProjektID
-Verrechnungssatz

BenutzerID und ProjektID sind verlinkt mit entsprechenden ID-Feldern in einer Benutzertabelle und einer Projekttabelle (m:n - Beziehung)

Die Spalte Verrechnungssatz gibt an, mit welchem Verrechnungssatz ein Benutzer X im Projekt Y abgerechnet werden soll.

Nun sollen die Verrechnungsätze zeitlich versioniert werden.

Meine Idee: die Tabelle ProjectMembers erhält ein zusätzliches Datumsfeld 'GültigSeit'

Für Abrechungsvorgänge wäre diese Tabelle aber so nicht zu gebrauchen. Bislang hätte es gereicht auf eine ProjektID zu filtern um alle Verrechnungssätze für die Projektbeteiligten zu ermitteln. In Zukunft soll zusätzlich auf ein Datum gefiltert werden können.
Also: Welcher Verrechnungssatz waren im Projekt X am Datum Y für den Benutzer Z gültig.

Hierzu wäre es notwendig die um 'GültigSeit' erweiterte Tabelle wie folgt zu transformieren:

-BenutzerID
-ProjektID
-Verrechnungssatz
-DatumSeit
-DatumBis

Gibt es kein Folgedatum für eine User/ProjeltID Kombination, so kann DatumBis meinetwegen NULL werden. Oder einen Wert irgendwann in der Zukunft annehmen.

Wenn es gelingt die Ausgangstabelle entsprechend zu transformieren, so könnten nachfolgende Abfragen auf diese Tabelle einfach mit der 'BETWEEN'-Anweisung arbeiten.

Aber wie sieht so eine Transformation aus?
 
Werbung:
Was verstehst du unter "Transformation"?
Du musst die Tabelle erweiteren um die beiden Spalten, entweder per TSQL oder im SQL Studio. Dann musst du deinen Programcode, bzw. die Abfragen auf die Datenbank entsprechend anpassen. Prinzipiell sollte das kein Problem sein, sofern du Zugriff auf den SQL Code in der Aplikation hast.
 
Also eigentlich hatte ich die Hoffnung, daß diese 'Transformation' (sorry für den irreführenden Ausdruck) mit einer mehr oder minder simplen SQL-Abfrage geht ohne daß ich im Programmcode meiner Applikation aufwendige Schleifen schreiben muß oder mit temporären Tabellen hantieren muß.
Gesucht ist also der Code für eine Sicht im SQL-Server die einfach die Ergebnismenge enthält.
 
Nungut, ich nahm an du wolltest die Datenbank anpassen. Natürlich kann man auch nur eine Sicht erstellen. Voraussetzung ist allerdings, das alle Daten irgendwo vorhanden sind! Deine Beschreibung klang so, als ob deine Tabellen bisher noch nicht die Informationen für GültigSeit und Gültigbis beinhaltet. Wenn dem doch so ist, müsstest du dir mal die Mühe machen und alle benötigten Tabellen und Felder zusammen suchen.
 
Werbung:
Hi,
@wgress: Hast Du diese Spalten jetzt in Deiner Tabelle oder suchst Du nach einem SQL Code um diese Spalten Deiner Tabelle hinzuzufügen?
 
Zurück
Oben