我有不同的查询要在不同的时间段内选择。 我想将它们传递给视图
mySqlCommand.CommandText = "SELECT * FROM
在我看来,我希望有一张桌子,我将连续获得药物,总销售额和平均销售额。
WHERE Username LIKE '%@Username%' ORDER BY Id DESC";
有什么建议吗?
答案 0 :(得分:0)
首先,通过公共字段(drug_id)对集合对象进行分组,如下所示:
$sales = DB::table('sales')
->join('drugs', 'drugs.id', '=', 'sales.drug_id')
->select('sales.*','drugs.name', DB::raw('sum(sales.quantity_sold) as total_sales'))
->whereYear('date_sold','>','2014')
->whereYear('date_sold','<','2017')
->groupBy('sales.drug_id')
->get()->groupBy('drug_id');
$stocks = DB::table('stocks')
->join('drugs', 'drugs.id', '=', 'stocks.drug_id')
->select('stocks.*','drugs.name', DB::raw ('AVG(stocks.quantity_sold) as average_stocks'))
->whereMonth('date_sold','=', Carbon::today()->month)
->groupBy('stocks.drug_id')
->get()->groupBy('drug_id');
然后,像这样合并两个集合:
$data = $sales->merge($stocks);
最后,在控制器的视图中注入数据,如下所示:
return view('viewname', compact('data'));