2017-10-31 3 views
1

Ich habe 2 Tabellen, master_kategori_project, die Kategorie von Projekten enthalten und project enthält, wie viele Projekte in einem bestimmten Monat in einem bestimmten Jahr. Unten ist meine master_kategori_project Tabelle.Zählen Wie viele Daten in einem Monat basierend auf Kriterien

id| category_project | description | 
1 | Category 1  | descrip 1 | 
2 | Category 2  | descrip 2 | 
3 | Category 3  | descrip 3 | 

und meine project Tabellennachschlagevorgang so etwas wie dieses

id| id_category_project | name_project | start_date | 
1 | 1     | Project 1 | 27-01-2017 | 
2 | 2     | Project 2 | 29-02-2017 | 

i einen Tisch machen wollen, das Diagramm wie dieses enthalten, kann u aus der Tabelle auf Januar siehe ich habe 3 Projekte von kategori 1, 5 Projekte von kategorie 2, 7 Projekte von kategorie 3 und so weiter

Wie kann ich eine Abfrage schreiben, die so etwas hat? Das Diagramm wird automatisch von der Tabelle selbst erstellt.

enter image description here

das ist mein Modell und ich glaube, ich habe es falsch, weil ich nicht die Daten in den richtigen Monat setzen kann

public function get_kategori_totals($mnth, $year=null) 
{ 
    $yr=date('Y'); 
    $select = " 
     SELECT COUNT(category_project),start_date,category_project 
     FROM 
      project 
     LEFT JOIN 
      master_kategori_project 
     ON 
      project.id_category_project=master_kategori_project.id 
     WHERE 
      MONTH(start_date)='$mnth'". 
      (($year == null)?" AND YEAR(start_date)='$yr' GROUP BY category_project":"AND YEAR(stat_date)='$year' GROUP BY category_project"); 
    return $this->db->query($select); 
} 

Antwort

1

Verwenden Sie die folgende Abfrage.

SELECT id_category_project, month(start_date), count(distinct name_project) as project_count 
    FROM project 
    WHERE start_date IS NOT NULL AND start_date <> '0000-00-00' 
    GROUP BY 1,2 
    ORDER BY 2,1 
+0

dieser Code ist nicht dynamisch, nicht wahr? wie wenn ich ein anderes Kategorienprojekt hinzufüge, dann muss ich den Code auch ändern –

+0

ich aktualisierte es. Es wird für mehr Kategorien auch gut sein, aber Sie werden individuelle Reihe für jede Kategorie erhalten. – Jack

+0

also muss ich das für jeden Monat setzen? ist das was du sagst? –

Verwandte Themen