laravel中选择多个表列和别名条件

Posted

技术标签:

【中文标题】laravel中选择多个表列和别名条件【英文标题】:Selecting multiple table columns and alias conditions in laravel 【发布时间】:2020-07-05 14:28:32 【问题描述】:

我想在 laravel 中实现这个查询..

select sum(reading * multiplier) as consumption, reading_date, count(id) as num, (sum(reading * multiplier) / count(id)) as average 
from electricities where meter_name != '' ;

到目前为止我有这个

electricities = Electricity::select(DB::raw('sum(reading * multiplier) as consumption', 'reading_date', 'count(id) as num', '(sum(reading * multiplier) / count(id)) as average'))
                                        ->where('factory_code', '=', $request->$factory_code)
                                        ->whereYear('reading_date', $request->$year)
                                        ->groupBy(DB::raw('month(reading_date)'))
                                        ->orderBy('reading_date', 'asc')
                                        ->get();

但它不会返回所需的输出..

谁能帮我解决这个问题?谢谢

【问题讨论】:

删除wherewhereYeargroupByorderBy,并添加where('meter_name', '<>', '')? 【参考方案1】:

根据您的查询:

electricities = Electricity::select(DB::raw('sum(reading * multiplier) as consumption', 'reading_date', 'count(id) as num', '(sum(reading * multiplier) / count(id)) as average'))
                                        ->where('meter_name', '!=', '')
                                        ->get();

【讨论】:

以上是关于laravel中选择多个表列和别名条件的主要内容,如果未能解决你的问题,请参考以下文章

在模型 laravel 的所有选择中显示相关表列

Laravel - 雄辩的关系 - 多对多 - 获取中间表列

另一个表列中多个值条件的SQL命令错误

如何从 json 创建表列和字段? (动态网格)

在多表列中具有多个术语的简单 PHP 过滤器

sql 获取表列和数据类型