ich sage ganz vorsichtig nein, weil sich mit SQL-Mitteln keine Darstellung erzeugen lässt, die gegen die 1. Normalform verstößt. Ganz vorsichtig, weil sich immer wieder DBMS-Hersteller damit hervortun, dem Kunden Erweiterungen anzubieten, die es vielleicht doch können.
oder würde ich
mich mit meinetwegen Perl oder gar awk leichter tun?
Mit Excel geht das ganz simpel: Transponieren leistet genau das.
um das in SQL zu lösen muss man ein bisschen was über dynamisches SQL wissen. Die Summentabelle würde ich in einer Stored Procedure anlegen:
Schleife über die Mitarbeitertabelle
alter table Summentabelle add column Mitarbeitername;
Ende-Schleife;
Zur Befüllung der Sumentabelle:
Schleife über die Arbeiten:
set @feldname = Mitarbeitername;
update Sumentabelle set @feldname = @feldname + Arbeitszeit
where Summentabelle.Projekt = Arbeiten.Projekt ;
Ende Schleife;
Das wäre der grobe Ablauf, Initialisierungen sind noch durchzuführen und die passende Syntax ist noch zu finden.
Das ist eine Ansicht, hat also wenig mit einer Datenhaltung
zu tun.
Und ja du kannst dir das alles Zusammenbasteln mit SQL Views .
Bisher hab ich den Weg dorthin nicht gefunden - das mag damit zusammenhängen, daß ich bisher nicht viel Ahnung von SQL habe…
Ist das mit SQL überhaupt vernünftig zu machen, oder würde ich
mich mit meinetwegen Perl oder gar awk leichter tun?
Einfacher mag es vielleicht sein , die Ausgabe mit anderen
FrontEnds zu organisieren. Oder brauchst du das als fertige
Tabelle
Etwas mehr Beschreibung wo zu das dient wäre hiflreich.
Gern.
Unsere Zeitauswertung kann direkt verschiedene Reports ausgeben, aber nicht den, den ich brauche. Deswegen exportiere ich alle Arbeitszeitdaten als CSV und versuche das dann in die gewünschte Form zu bringen. Eventuell gibt es später mal die Möglichkeit, direkt auf die Datenbank zuzugreifen, aber das wäre nur eine Arbeitserleichterung und hat nichts mit meinem eigentlichen Problem zu tun.
Es soll pro Projekt aufsummiert werden, welcher Mitarbeiter wieviele Stunden daran gearbeitet hat. Dazu kommt aus einer anderen Tabelle, wieviel Arbeitszeit ursprünglich für das gesamte Projekt kalkuliert war. Das Ganze wird dann sortiert nach der Abweichung von der geplanten Zeit.
Zweck 1: Bei starken Zeitüberschreitungen sollen die Projektunterlagen überprüft werden, um festzustellen, woran es gelegen hat. Mittelfristig soll diese Prüfung bei größeren Projekten auch zwischendurch möglich sein, um frühzeitig zu erkennen, wenn die Sache aus dem Ruder läuft.
Zweck 2: Bei Zeitunterschreitungen sind Bonuszahlungen an die Mitarbeiter geplant, die sich nach der Beteiligung der jeweiligen MA am Projekt richten.
Diese Auswertungen glaube ich hinzukriegen, aber ich hänge erstmal am oben beschriebenen Übergang.