[英]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.