Mailinglisten-Archive |
Hallo Norbert, die erste Antwort mit "DISTINCT", "COUNT" und "GROUP BY" ging glaube ich fast schon in die richtige Richtung. Ich habe mal deine Tabelle nachgebaut und ein bueschen rumprobiert. Soweit ich das erkennen konnte, klappt aber eine Kombination von DISTINCT und GROUP BY im gleichen SELECT-Statement nicht so richtig, will sagen, gar nicht. Was man braeuchte, waere eine Funktion aehnlich COUNT, die aber nur die verschiedenen Eintraege zaehlt, aber das weisst du sicher auch... ;-) Ich habe auch probiert, die Tabelle mit sich selber zu verknuepfen, also sowas wie: SELECT a.pro_id AS projekt, SUM(a.dauer) AS aufwand, COUNT(b.per_id) AS leute FROM test AS a, test AS b WHERE a.pro_id = b.pro_id GROUP BY a.pro_id, b.pro_id Hat aber auch irgendwie nicht viel gebracht. :-( Eine andere Idee war, zwei SELECT-Statements zu verwenden. Also erst den Aufwand pro Projekt zu berechnen und dann mittels "WHERE pro_id IN (15,17)" und einem DISTINCT und GROUP BY, aber auch das klappte nicht so richtig. Ich glaube, selbst wenn man die Tabelle irgendwie splitten wuerde, wuerde man wieder auf das Problem stossen, dass man DISTINCT und GROUP BY nicht kombinieren kann. Vielleicht weiss dazu ja jemand was genaueres, ob das ueberhaupt moeglich ist? Als Workaround wuerde mir noch einfallen, dass du die Dauer pro Person und Projekt in einer eigenen separaten Tabelle jeweils aufsummierst. Nur dann hast du eben Probleme mit Datenredundanz und dem Datenabgleich. Sorry, dass ich dir keine Loesung bieten konnte, vielleicht hilft dir aber der ein oder andere Denkansatz weiter? Gruss, Ralf -- __________________________________________ In-Greece.de - die Griechenlandcommunity _______ http://www.in-greece.de/ _________ --- !!NEU!! Fragen und Antworten zu MySQL und dieser Liste unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive