我的查询涉及1个表:“ entries”。正常运行的SQL查询是:
select `type`, YEAR(`date`) AS import_year, count(*) as aantal from
`entries` where `merk` = 'FORD' and `date` <> `other_date`
GROUP BY `type`, YEAR(`date`)
此查询给出以下结果:
- FOCUS 1998 13
- FOCUS 2001 15
- ORION 2007 12
- ORION 2009 7
但是现在的问题是如何在Laravel / Eloquent中安排它,最好是发表一个声明。 到目前为止:
$registrations = entry::where('merk', 'FORD')
->whereRaw('date <> other_date')
->selectRaw('type, YEAR(date) AS import_year')
->get()
->groupBy('type_final', 'import_year')
但是,这向我提供了所有符合要求的单独条目,我只希望拥有已盘点的物品。我尝试了很多,但是无法以简单的方式获得最终的解决方案。可以帮助我吗?
答案 0 :(得分:0)
您可以检索聚合(在您的情况下为count
)。请参阅文档中的此部分:https://laravel.com/docs/5.6/eloquent#retrieving-single-models
答案 1 :(得分:0)
在get()
之后致电groupBy()
:
$registrations = entry::where('merk', 'FORD')
->whereRaw('date <> other_date')
->selectRaw('type, YEAR(date) AS import_year, count(*) AS aantal')
->groupBy('type', 'import_year')
->get()