我正在尝试建立一个查询,以显示每组药物在过去6个月中每月使用的药物。
返回的查询应类似于。
药物|十月|九月|八月|七月|六月|可以 1 2 1 4 6 2 1 2 2 1 4 6 2 1 3 2 1 4 6 2 1 4 2 1 4 6 2 1
我已经开始写类似...的查询
<?php
$nw = NarcoticWaste::with([
'vial' => function ($query) {
$query->select('medication', DB::raw('count(*) as use_count')); //I am unaware how to get each month here//);
$query->groupBy('medication');
},
'vial.medications'
])->withCount(['vial'])->get();
foreach ($nw as $n) {
$n->vial_count;
}
我已经搜索并找到了按月分组的方法,但是没有找到任何内容可以对每个月进行列。
答案 0 :(得分:0)
您可以尝试这样的事情:
$nw = NarcoticWaste::with(['vial' => function($query)
{
$query->select('medication', DB::Raw('MONTH(created_at) month'),DB::raw('count(*) as use_count'));
$query->groupBy('medication', 'month');
}, 'vial.medications'])
->withCount(['vial'])
->get();
foreach($nw as $n)
{
$n->month;
$n->medication;
$n->use_count;
}
DB::Raw('MONTH(created_at)
将获得月份,$query->groupBy('medication', 'month');
将根据每种药物和每月分组。