[英]How to combine two queries from the same table using Laravel query builder
由于除了整数外,它们都相同,因此您可以简单地这样做:
Sale::whereIn('branch_id', [1, 2])->...
...,并使其余查询保持不变。
我认为您在原始SQL中寻找的是:
SELECT
`date`,
SUM(IF(branch_id = 1, amount, 0)) as 'Branch 1',
SUM(IF(branch_id = 2, amount, 0)) as 'Branch 2',
SUM(amount) as 'Total'
FROM
branches
WHERE
branch_id IN (1,2)
GROUP BY
`date`;
不幸的是,您不能使用querybuilder来完成大多数操作,因此您需要使用DB::raw()
来完成此操作,如下所示:
Sale::whereIn(branch_id', [1,2])->
select('date',
DB::raw("
SUM(IF(branch_id = 1, amount, 0)) as 'Branch 1',
SUM(IF(branch_id = 2, amount, 0)) as 'Branch 2',
SUM(amount) as amount
")
)->groupBy('date')->get();
我还没有在Laravel中测试过它,所以它可能会稍微有些偏离,但它应该使您接近。
尝试这个。
DB ::表( '销售') - >其特征在于,( 'branch_id',[1,'2]) - >得到();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.