我正在尝试构建一个查询,以显示过去6个月中每组药物使用的药物。
返回的查询应该如下所示。
用药|10月|9月|8月|7月|6月|5月1 1 4 6 2 1 2 2 1 2 2 1 3 2 1 4 6 2 1 14 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;
}我已经搜索并找到了按月分组的方法,但还没有找到任何可以为每个月创建一个专栏的方法。
发布于 2018-10-15 07:50:26
您可以尝试如下所示:
$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');将按药物和按月分组。
https://stackoverflow.com/questions/52808000
复制相似问题