Mysql Laravel-使用Laravel查询账龄报告
我有一个MySQL查询,我想转换成LaravelMysql Laravel-使用Laravel查询账龄报告,mysql,laravel,Mysql,Laravel,我有一个MySQL查询,我想转换成Laravel SELECT client_id, DATEDIFF(CURDATE(), due_date) AS days_past_due, SUM(IF(days_past_due = 0, amount_due, 0)), SUM(IF(days_past_due BETWEEN 1 AND 30, amount_due, 0)), SUM(IF(days_past_due BETWEEN 31 AND 60, amount_due, 0)), SUM
SELECT client_id,
DATEDIFF(CURDATE(), due_date) AS days_past_due,
SUM(IF(days_past_due = 0, amount_due, 0)),
SUM(IF(days_past_due BETWEEN 1 AND 30, amount_due, 0)),
SUM(IF(days_past_due BETWEEN 31 AND 60, amount_due, 0)),
SUM(IF(days_past_due BETWEEN 61 AND 90, amount_due, 0)),
SUM(IF(days_past_due > 90, amount_due, 0))
FROM invoices
GROUP BY client_id
我想使用Laravel查询以矩阵格式创建当前、30、60、90天的账龄报告
比如说,
客户名称当前1-30 31-60>90总计
AAA 3000 1500 4500
BBB 2000 200 2200
总数3000 3500 200 6700
我想得到这样的报告。当用户输入日期时,应检查duedate。当输入的日期>到期日时,获取账龄天数
如果agin days是今天,则获取netAnmount并显示在当前列中
如果差异为1-30天,则下一列…等等
如何获取此查询?我在Laravel中使用子查询可能会对您有所帮助
$invoice = Invoice::select(\DB::raw('ledgers.id,invoices.invoice_no,invoices.invoice_date,invoices.invoice_due,invoices.invoice_balance,DATEDIFF("'.$request->input('to_date').'", invoices.invoice_date) AS days_past_due'))
->join('quotations','quotations.id','=','invoices.quotation_id')
->join('ledgers','ledgers.id','=','quotations.ledger_id')
->where('invoices.invoice_date','<=',$request->input('to_date'))
->whereNotIn('invoices.status',[1,2]);
$agingReport = Ledger::select(\DB::raw('a.id,ledgers.name,a.invoice_no,a.invoice_date,a.invoice_due,a.invoice_balance,a.days_past_due,CASE WHEN a.days_past_due =0 then a.invoice_balance else 0 end as month,
CASE WHEN a.days_past_due >0 and a.days_past_due <= 30 then a.invoice_balance else 0 end as aging30days,
CASE WHEN a.days_past_due >30 and a.days_past_due <= 60 then a.invoice_balance else 0 end as aging60days,
CASE WHEN a.days_past_due >60 and a.days_past_due <= 90 then a.invoice_balance else 0 end as aging90days,
CASE WHEN a.days_past_due >90 then a.invoice_balance else 0 end as more30days'))
->from(\DB::raw('('.$invoice->toSql().') as a '))
->mergeBindings($invoice->getQuery())
->join('ledgers','ledgers.id','=','a.id')
->get();
return response()->json($agingReport);
$invoice=invoice::选择(\DB::raw('largers.id,invoices.invoices\u no,invoices.invoices\u date,invoices.invoices\u due,invoices.invoices\u balance,DATEDIFF(“'.$request->input('to\u date')。”,invoices.invoices\u date)作为过期天数)
->join('QUOTES'、'QUOTES.id'、'='、'invoices.QUOTE\U id')
->联接('ledgers'、'ledgers.id'、'='、'Quotences.ledger\u id')
->其中(‘发票。发票日期’、‘0和a.逾期30天和a.逾期60天和a.逾期90天,则a.发票余额0结束为30天以上’)
->from(\DB::raw(“(“$invoice->toSql()”)作为“))
->合并绑定($invoice->getQuery())
->join('ledgers'、'ledgers.id'、'='、'a.id')
->get();
return response()->json($agingReport);
请参见: