php - 通过部门的总额(包括公司)

标签 php mysql cakephp

我正在尝试运行包含三个表的 SQL 语句。

收入

-id
-title
-amount
-company_id

公司

-id
-name
-sector_id

部门

-id 
-name

如您所见,“收入”表与“部门”表没有直接关系。我想做的是按行业部门获取总收入。

到目前为止,我已经成功计算了两个表格,但对于三个表格的知识有限。请指导我。

这适用于两个表。按公司划分的收入

    $x=0;
    foreach($companies as $Company){
        $companyName= $Company['Company']['name'];
        $companyId= $Company['Company']['id'];

        $query= $this->Income->query("
        SELECT  SUM( amount ) AS IncomeTotal
        FROM incomes
        WHERE company_id=$companyId
        ");

        $total=$query[0][0]['IncomeTotal'];

        if($total!=null){
            //$incomeByCompany[$companyName]=$total;
            //$incomeByCompany['total']=$total;
            $incomeByCompany[$x]['companyId']=$companyId;
            $incomeByCompany[$x]['name']=$companyName;
            $incomeByCompany[$x]['total']=$total;

        }
        $x++;
    }

最佳答案

SELECT s.name , SUM(i.amount) as total_sector
FROM sectors s
JOIN companies c
   ON s.id = c.sector_id
JOIN incomes i
   ON c.id = i.company_id
GROUP BY s.name

此外,您的公司查询应该是:

,而不是循环
SELECT c.name , SUM(i.amount) as total_sector
FROM companies c
   ON s.id = c.sector_id
JOIN incomes i
   ON c.id = i.company_id
GROUP BY c.name

关于php - 通过部门的总额(包括公司),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46920570/

相关文章:

mysql - 将 mysqldump 文件从一个目录复制到备份目录

mysql - CakePHP 3 : Database syntax error or access violation issue

php - CakePHP session /身份验证间歇性注销

php - 如何在 Wordpress 中隐藏模板?

mysql - 将用户添加到 RDS 实例 - MySQL 数据库

mysql - Hibernate mysql 问题

session - CakePHP 4 : How to read session data in table class(Model)?

CakePHP:我总是需要使用 isAuthorized() 吗?

javascript - 多页倒数计时器

php - 当从数据库中获取的数据存储在文本字段中时,如何自动移动下一页