Laravel查询构建器SUM返回相乘的值

时间:2016-06-12 16:39:16

标签: php mysql laravel-4 laravel-5 eloquent

我有以下查询,并且在使用优秀的堆栈溢出程序yesterday's question帮助解决上一个问题后,从昨天开始与之斗争。

$sales = DB::table('sales')
        ->leftJoin('store_configs', 'store_configs.id', '=', 'sales.store_config_id')
        ->leftJoin('category_sales', 'category_sales.sale_id', '=', 'sales.id')
        ->leftJoin('categories', 'categories.id', '=', 'category_sales.category_id')
        ->leftJoin('departments', 'departments.category_id', '=', 'categories.id')
        ->leftJoin('department_sales', 'department_sales.sale_id', '=', 'sales.id')
        ->select('sales.date',

            DB::raw('sales.id as sales_id'),
            DB::raw('(IFNULL(sum(department_sales.amount), 0)) as department_sales'),
            DB::raw('(IFNULL(sum(category_sales.amount), 0)) as cat_total')

        )

        ->groupBy('date', 'sales.id')->orderBy('date', 'desc')->get();

以下是上述查询的结果输出,它是错误的:

enter image description here

我有一个包含以下数据的表结构:categories_sales包含以下数据: enter image description here

department_sales

enter image description here

根据表格:我预期的结果应该是:

department_sales: 10 for sale_id = 1
department_sales: 5 for sale_id = 2

category_sales: 200 for sale_id 1
category_sales: 30 for sale_id 2

有人可以给我一些想法吗?我真的很感激。

0 个答案:

没有答案