phpbar.de logo

Mailinglisten-Archive

Idee gesucht

Idee gesucht

Ralf Eggert mysql-de_(at)_lists.bttr.org
Sat, 27 Oct 2001 10:25:48 +0100


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