2016-12-07 3 views
0

Zuerst wird das Schema - ich habe 4 Tabellen:Finden Sie die Anzahl der Elemente aus einer anderen Tabelle

office - officeid, officename 
member - memberid, officeid, membername (multiple members per office) 
transaction - transactionid, memberid, transactiontype (multiple transactions per member) 
activity - activityid, officeid (multiple activities per office) 

Wie kann ich die Liste der Mitgliedsnamen erhalten, zusammen mit Büros und die Anzahl der jeweiligen Transaktionstyp und Gesamtzählung von Aktivitäten für dieses Büro mit einer einzigen Abfrage?

Ich habe mich versucht und ich kann die Office-Namen, Mitgliedsnamen und Aktivität zählen, aber nicht in der Lage, die Transaktionsanzahl (pro Transaktionstyp) mit einer einzigen Abfrage zu erhalten. Ich frage mich, ob das überhaupt möglich ist.

Alle Vorschläge/Hilfe wird geschätzt. Bitte lassen Sie mich wissen, wenn ich keine Details zur Verfügung stellen kann, die ich

bearbeiten verpasst - Ich habe eine sqlfiddle mit einigen Beispieldaten bei http://sqlfiddle.com/#!9/9cf7b/1

Auch erkannte ich die OfficeID Fremdschlüssel in der Mitgliedertabelle verpasst hatte.

Bearbeiten - Hinzufügen von Ausgang erwartet

officename, membername, transaction_count_1, trasaction_count_2, activitycount 
abc  , aa  , 1     , 1,    , 3 
abc  , bb  , 1     , 0,    , 1 
abc  , cc  , 0     , 1,    , 0 
+0

uIn Ihrer Frage gibt es keine Beziehung zwischen Transaktion und Aktivität .. wie müssen Sie diese Tabellen verbinden? ... Sie brauchen etwas, die Büro und Transaktion oder Aktivität und Transaktion – scaisEdge

+0

@scaisEdge - ich trat Büro und Mitglied zuerst und dann Transaktion zu Mitglied und Aktivität zu Büro für eine Abfrage, um alle Ergebnisse zu erhalten. aber ich konnte nicht herausfinden, wie man die Anzahl pro Transaktionstyp erhält. – pinaki

+1

Aktualisiere deine Frage, indem du ein richtiges Datenmuster und das erwartete Ergebnis hinzufügst – scaisEdge

Antwort

0

Ich denke, das Ihren Zweck lösen können.

select b.membername,a.officename,count(transactiontype) 
from office a, 
member b, 
transaction c 
where a.officeid = b.officeid 
and b.memberid = c.memberid 
group by b.membername,a.officename 

Wenn Sie weitere Datenmanipulation benötigen nur geben Sie mir eine Idee (perferably einen Screenshot oder ein Bild), wie die Ausgabe aussehen soll und ich werde die Abfrage entsprechend ändern.

Danke.

Verwandte Themen