Ich habe eine Tabelle user, in der gibt es die Spalten:
UserID ContactID GroupID
UserID und ContactID sind einmalig. Die GroupID kann mehrmals vorkommen.
Und eine Tabelle usergroup mit den Spalten:
GroupID GroupName OperatorID
GroupID ist einmalig. Rest kann mehrmals vorkommen.
Als Beispiel:
UserID ContactID GroupID
1 - 5 - 1
2 - 6 - 1
3 - 7 - 2
4 - 12 - 3
GroupID GroupName OperatorID
1 - Gruppe1 - 10
2 - Gruppe2 - 10
3 - Gruppe3 - 11
Ich möchte nun eine Abfrage schreiben, die mir folgende Ausgabe gibt für eine bestimmte Operator ID:
GroupID UserNumber
1 - 2
2 - 1
Meine Abfrage an der im rumdoktore sieht so aus:
SELECT usergroup.GroupID, usergroup.GroupName, COUNT( user.GroupID ) AS UserNumber
FROM usergroup, user
WHERE usergroup.OperatorID =10
GROUP BY usergroup.GroupID
Mit Count werden aber immer ALLE User gezählt, also steht in der Spalte UserNumber immer 4 drin.
GroupID GroupName UserNumber
30 - Gruppe1 - 4
31 - Gruppe2 - 4
Wie mache ich das, dass pro GroupID gezählt wird?
Edit:
Mit
SELECT user.GroupID, COUNT( user.GroupID ) AS UserNumber
FROM user
GROUP BY user.GroupID
bekomme ich schonmal die Anzahl User je Gruppe. Aber nun fehlt mir die Unterscheidung je Operator. Ich will also je Operator wissen wie viele Mitglieder die Gruppen haben
EDIT2:
ok, ich habs selber:
SELECT user.GroupID, COUNT( user.GroupID ) AS UserNumber
FROM user
WHERE user.GroupID IN (SELECT usergroup.GroupID FROM usergroup WHERE usergroup.OperatorID=10)
GROUP BY user.GroupID
Ah ne e, jetzt habe ich zwar die richtigen Zahlen, aber ich bekomme den GroupName nicht mehr dazu
UserID ContactID GroupID
UserID und ContactID sind einmalig. Die GroupID kann mehrmals vorkommen.
Und eine Tabelle usergroup mit den Spalten:
GroupID GroupName OperatorID
GroupID ist einmalig. Rest kann mehrmals vorkommen.
Als Beispiel:
UserID ContactID GroupID
1 - 5 - 1
2 - 6 - 1
3 - 7 - 2
4 - 12 - 3
GroupID GroupName OperatorID
1 - Gruppe1 - 10
2 - Gruppe2 - 10
3 - Gruppe3 - 11
Ich möchte nun eine Abfrage schreiben, die mir folgende Ausgabe gibt für eine bestimmte Operator ID:
GroupID UserNumber
1 - 2
2 - 1
Meine Abfrage an der im rumdoktore sieht so aus:
SELECT usergroup.GroupID, usergroup.GroupName, COUNT( user.GroupID ) AS UserNumber
FROM usergroup, user
WHERE usergroup.OperatorID =10
GROUP BY usergroup.GroupID
Mit Count werden aber immer ALLE User gezählt, also steht in der Spalte UserNumber immer 4 drin.
GroupID GroupName UserNumber
30 - Gruppe1 - 4
31 - Gruppe2 - 4
Wie mache ich das, dass pro GroupID gezählt wird?
Edit:
Mit
SELECT user.GroupID, COUNT( user.GroupID ) AS UserNumber
FROM user
GROUP BY user.GroupID
bekomme ich schonmal die Anzahl User je Gruppe. Aber nun fehlt mir die Unterscheidung je Operator. Ich will also je Operator wissen wie viele Mitglieder die Gruppen haben
EDIT2:
ok, ich habs selber:
SELECT user.GroupID, COUNT( user.GroupID ) AS UserNumber
FROM user
WHERE user.GroupID IN (SELECT usergroup.GroupID FROM usergroup WHERE usergroup.OperatorID=10)
GROUP BY user.GroupID
Ah ne e, jetzt habe ich zwar die richtigen Zahlen, aber ich bekomme den GroupName nicht mehr dazu
Zuletzt bearbeitet: