2017-06-06 4 views
1

Ich habe diese Tabellen beitreten:Kreuz verbinden links Zählung Reihe

Task Group Tabelle

id name 1 cooking 2 baking

Aufgabenstatus Tabelle

id name 1 open 2 done? 3 completed 4 re-open 5 suspend

Aufgaben Tabelle

project_id task_group_id task_status_id task_name 1 1 1 cooking martabak 1 1 2 cooking sate kambing 1 1 3 cooking nasi uduk 1 1 4 cooking nasi goreng 1 1 1 cooking martabak telor 1 1 2 cooking sate ayam 1 1 5 cooking nasi tutug oncom 1 1 5 cooking nasi pera 1 2 1 bake nastar 1 2 2 bake bolu pisang 1 2 3 bake bika ambon 1 2 5 bake bolu kukus 1 2 3 bake cheese stik 1 2 1 bake bolu ketan 1 2 5 bake papais 1 2 1 bake boled

und das Ergebnis, dass ich will, was ist wie folgt:

project task_group task_status number Restaurant Cooking Completed 1 Restaurant Cooking Done? 2 Restaurant Cooking Open 2 Restaurant Cooking Re-open 1 Restaurant Baking Completed 2 Restaurant Baking Done? 1 Restaurant Baking Open 3 Restaurant Baking Re-open 0

Task-Status "Suspend" ausgeschlossen

Ich habe versucht, Aufgaben zu überqueren beitreten Tabelle mit Task-Status-Tabelle mit Unterabfrage mit Where-Klausel task_status.name in ('öffnen', 'fertig?', 'abgeschlossen', 'wieder öffnen'), aber ich kann nicht die richtige Zählung Aggregation

+0

nur nach Name erste Tabelle zum Gruppieren und zweiten Tabellennamen –

+0

ich es versucht, aber das Zählergebnis ist nicht richtig ... Ich bin sicher, ich vermisse den Link auf Join, aber ich weiß nicht, wie ich es beitreten ... – Rakaziwi

Antwort

1

bekommen ich glaube, Sie so etwas tun kann:

SELECT 
    project.name AS project, 
    Task_Group.name as task_group , 
    Task_Status.name as task_status, 
    COUNT(*) AS number 
FROM 
    Tasks 
    JOIN Task_Group 
     ON Tasks.task_group_id = Task_Group.id 
    JOIN Task_Status 
     ON Task.task_status_id=Task_Status.id 
    JOIN project_table 
     ON Task.project_id=project_table.project_id 
WHERE 
    Task_Status.Id IN(1,2,3,4) 
GROUP BY 
    project_table.name, 
    Task_Group.name, 
    Task_Status.name 
+0

Ich kann nicht die Anzahl der geöffneten Status abrufen, ich möchte den Status der aufgelisteten Aufgabe als anzeigen oben auch wenn es keine Zeile in der Tabelle hat – Rakaziwi