【问题标题】:Count How many Data in a month based on Criteria根据 Criteria 计算一个月内有多少数据
【发布时间】:2018-04-12 04:27:08
【问题描述】:

我有 2 个表,master_kategori_project 包含项目类别,project 包含特定年份特定月份的项目数量。下面是我的master_kategori_project 表。

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

我的project 表看起来像这样

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

我想制作一个包含这样图表的表格,你可以从 1 月的表格中看到我有 3 个类别 1 的项目、5 个类别 2 的项目、7 个类别 3 的项目和以此类推

我怎样才能写出这样的查询?图表由表格本身自动构建。

这是我的模型,我认为我做错了,因为我无法将数据放入正确的月份

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);
}

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    使用下面的查询。

      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
    

    【讨论】:

    • 这段代码不是动态的,不是吗?就像如果我添加另一个类别项目,那么我也需要更改代码
    • 我更新了。它也适用于更多类别,但您将获得每个类别的单独行。
    • 所以我每个月都需要放这个吗?你是这么说的吗?
    • 好的,我想我可以以某种方式对其进行调整,谢谢现在我只给+1,当我尝试这个时我会接受你的回答
    猜你喜欢
    • 2018-04-03
    • 1970-01-01
    • 1970-01-01
    • 2021-01-31
    • 2016-02-26
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    相关资源
    最近更新 更多