我想將下面的postgresql代碼轉換為 laraveleloquent
select s2.itemdesc,
to_char(date_trunc('month', saledate), 'YYYY') AS year,
to_char(date_trunc('month', saledate), 'Month') AS month,
to_char(date_trunc('month', saledate), 'MM') AS month_number,
sum(qty) AS qty1
from sale s left join saled s2 on s.saleno = s2.saleno
GROUP BY s2.itemdesc, date_trunc('month', saledate)
order by s2.itemdesc desc and month desc
我已經在 Postgresql Manager 及其作業中嘗試過查詢。但是我在轉換為 Laravel 時失敗了eloquent
uj5u.com熱心網友回復:
DB::query() 回傳查詢生成器的實體。
在該實體中,您可以將要選擇的列作為逗號分隔的引數列出,并使用select(). 對于計算或聚合列,傳遞DB::raw(expression)而不是原始運算式有效。另一種方法是將所有內容作為單個引數傳遞給selectRaw也是一個選項。
選擇主表有兩種方法: 查詢生成器的from(table, alias)方法。別名引數是可選的。table 引數可以是字串,也可以是子查詢表的閉包。DB::table(table, alias)也有效。它在功能上與做DB::query()->from(table, alias).
groupBy()/groupByRaw()用于按列分組。
orderBy()/orderByRaw()用于按列排序。
DB::query()
->select(
's2.itemdesc',
DB::raw("to_char(date_trunc('month', saledate), 'YYYY') AS year"),
DB::raw("to_char(date_trunc('month', saledate), 'Month') AS month"),
DB::raw("to_char(date_trunc('month', saledate), 'MM') AS month_number"),
DB::raw("sum(qty) AS qty1")
)
->from('sale', 's')
->leftJoin('saled s2', 's.saleno', 's2.saleno')
->groupByRaw("s2.itemdesc, date_trunc('month', saledate)")
->orderByRaw8"s2.itemdesc desc, month desc")
->get();
Eloquent 模型的作業方式相同。
Sale::query()->...
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/407378.html
標籤:
