2 Stimmen

Zählen von Abfrageergebnissen bei Multi-Join-Anweisungen

select cnt.loginid, grp.last_name as 'Group Name' 
from contact cnt 
    right join grpmem list on cnt.contact_uuid = list.member 
    left join contact grp on grp.contact_uuid = list.group_id 
    join contact_acctyp cntacc on cnt.contact_uuid = cntacc.contact_uuid
where cntacc.c_acctyp_id in (select id from acctyp_v2 where sym like 'CDN%')

Ich habe eine Abfrage für unser System geschrieben, die eine Liste aller kanadischen Kontakte und der Gruppe, in der sie sind, abruft.

Nun muss ich für Personen, die in mehreren Gruppen sind (ihre Loginid erscheint mehrfach), die Anzahl der Gruppen, in denen sie sind, ermitteln (eine Anzahl zurückgeben). Ich bin mir jedoch nicht sicher, wie ich die Zählung durchführen soll.

Ich möchte, dass meine Ausgabe das folgende Format hat:

| USER ID | # of Groups |

Ich kann nicht herausfinden, wie ich das, was ich geschrieben habe, in das umsetzen kann.

2voto

Phil Sandler Punkte 26854

Unter der Annahme, dass Sie lediglich die Informationen, die Sie bereits zurückerhalten, zusammenfassen wollen, und ohne Ihre Abfrage im Detail zu betrachten, kann ich nur raten:

select 
    cnt.loginid, 
    COUNT(*)
from contact cnt 
    right join grpmem list on cnt.contact_uuid = list.member 
    left join contact grp on grp.contact_uuid = list.group_id 
    join contact_acctyp cntacc on cnt.contact_uuid = cntacc.contact_uuid
where cntacc.c_acctyp_id in (select id from acctyp_v2 where sym like 'CDN%')
GROUP BY
     cnt.loginid

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X