Also eine Übersicht wieviel zeit x für den Verein tätig war. Die Zahlen kann ich mit sum aufaddieren. und die Leute ,it group by zusammenfassen. Was mache ich mit dem Datum?
Für Mike existieren zB 3 Einträge, für Silke 2.
Für die Zukunft: Speicher für jeden Arbeitstag eine Zeile in der db. Bei der bisherigen Verfahrensweise wirst du noch mehr Überraschungen erleben bei deren Lösungen du dir das Hirn ausrenkst. Und irgendwann kommst du an einen Punkt an dem es nicht mehr lösbar ist.
Wenn du eine Zeile pro Arbeitstag hast, dann wäre das jetzt mit MYsql ein Klacks gewesen.
mysql_num_rows().
wenn ich diese Anforderung umsetzen müsste, würde mich erst einmal interessieren, mit welcher Datenbank ich es zu tun habe.
Bei MS SQL ab 2005 kann ich dies in einer Abfrage lösen.
Bei MS SQL
leider steht meine Glaskugel im Büro. Mit welchem Tool arbeitest Du?
Mit Excel kein Problem (zusätzliche Spalte(n) notwendig), mit SQL ohne einer Sprache, die die Ausgabe steuert, keine Chance (hängt mit der variablen Anzahl der Möglichkeiten zusammen(*)).
MfG Georg V.
P.S.: (*) Was anderes ist, wenn die möglichen Aktionstage sozusagen fest vorgegeben sind. Aber das Statement sollte man sich generieren lassen, womit man wieder bei der Toolfrage angelagt wäre …
Hallo,
danke für die Antwort.
Ich habs nun tatsächlich gelöst. Über einen subquery und php . Nicht schön, tut aber. Ach ja und aus den Zeilen mit doppelten Einträgen habe ich zwei gemacht.
Komisch ists aber schon. Da aus unterschiedölichen Tabellen ists kein Problem…
ich denke mit nem select * auf die Tabelle und einer foreachschleife welche die Daten in ein Array schreibt mit dem Namen des Vereinsmitgliedes wäre das ganze ein quasi 13 Zeiler
Hi,
falls du die Lösung nicht schon hast, inzwischen:
SELECT
`wer`,
GROUP\_CONCAT(DISTINCT `datum` ORDER BY `datum` SEPARATOR ', ') AS `Tage`,
CONCAT(SUM(`zeit`), ' h') AS `Stunden`
FROM `taetigkeiten`
GROUP BY `wer` ;
die Funktion GROUP_CONCAT ist eine Aggregatfunktion wie SUM, COUNT usw.
Weil taetigkeiten.zeit numerisch sein muss, um aufsummiert zu werden, muss das ‚h‘ per CONCAT nach dem SUM angefügt werden,
Hi,
eine Lösung habe ich. Allerdings via php.
Danke sehr. Mal sehen, vielleicht probeire ich beide aus und schaue mal, ws besser ist.
Prinziepiell würde ich gerne so viel wie möglich via sql machen.Und das h kannte ich noch nicht.
Und ich habe die DB nun umgestellt, dass einfach pro Zeile nur ein Datum genannt wird und pro Zeile 1x Material (Farbe, Holz).
Danach einfach eine sub-Query und das Datum in ein Array.
tut mir leid dass ich auf deine Anfrage nicht geantwortet habe da ich die eMail-Addresse die ich bei wer-weiss-was.de angegeben habe für ca. ein Jahr nicht genutzt habe.
Ich hoffe dir konnte in der Zwischenzeit jemand anderes weiterhelfen.
Hi Daniel,
kein Problem. Trotzdem Danke für die Rückmeldung.
Ist halt bei einem freiwilligem Forum!
Group by ist zwar richtig, aber irgendwie passt das Ganze nicht.
Weil group by nach Datum tuts niht, weil es uU auch zwei logistisch verschiedene Datensätze sein können.
Gleiches für group by „ausführender“.