Einzelnen Beitrag anzeigen
  #1  
Alt 05.11.2009, 07:55:43
toxic3008 toxic3008 ist offline
Anfänger
 
Registriert seit: Nov 2009
Alter: 44
Beiträge: 2
2 Counts über verschiedene Tabellen mit Join

Hallo,

ich habe 2 Tabellen:


Tabelle USERS in der alle User aufgeführt sind - jeder User ist einem Team (UserDepartment) zugeordnet!
Code:
++++++++++++++++++
+ USERS          +
++++++++++++++++++
+ UserID         +
+ UserName       +
+ UserDepartment +
++++++++++++++++++

Und die Tabelle analytics - Sobald im Tool eine Seite angeklickt wird, wird ein Datensatz mit Uhrzeit, aufgerufene Seite und Abteilung des Mitarbeiters in die Datenbank geschrieben:
Code:
++++++++++++++++++
+ ANALYTICS      +
++++++++++++++++++
+ Department     +
+ Time           +
+ Site           +
++++++++++++++++++


Nun habe ich zunächst eine Übersicht, wo alle Teams mit der Anzahl der User aufgeführt sind:
Code:
Department  | Users
++++++++++++++++++++
Abteilung 1 |    12
Abteilung 2 |    10
Abteilung 3 |     3


SQL:
SELECT COUNT( * ) AS ZeilenUsers , UserDepartment
FROM users
GROUP BY UserDepartment
ORDER BY ZeilenUsers DESC

Nun möchte ich noch die Pagehits pro Team dahinter geschrieben bekommen, sodass dies dann etwa so ausschaut:
Code:
Department  | Users | Pagehits
+++++++++++++++++++++++++++++++
Abteilung 1 |    12 |        
Abteilung 2 |    10 |      123
Abteilung 3 |     3 |       10

Es kann auch sein, dass eine Abteilung gar keine Hits hat, sodass ein Join erforderlich ist!


Folgender Query zählt durch den LEFT-Join leider alle Zeilen, die er durch den Join rausholt:
Code:
SELECT COUNT(UserDepartment) AS ZeilenUsers , u.UserDepartment, Count (usersa_team) AS ZeilenVisits
FROM users AS u
LEFT JOIN users_analytics AS a ON (u.UserDepartment=a.usersa_department)
GROUP BY u.UserDepartment
ORDER BY ZeilenUsers DESC
Wie kann man das anders lösen?

Vielen Dank für die Hilfe im Voraus!


Grüße, Stefan
Mit Zitat antworten