Php 如何从Laravel MySQL循环条件聚合中检索$key as to$row数据?
为了缩短数据库调用,向我建议了一个条件聚合命令,但它没有提到如何使用我正在使用的Laravel/PHP/Mysql数据检索方法 我可能只是错误地理解了这一点,或者使用了错误的方法来检索数据,但在使用以下方法提取特定列数据时会产生错误:Php 如何从Laravel MySQL循环条件聚合中检索$key as to$row数据?,php,mysql,laravel,Php,Mysql,Laravel,为了缩短数据库调用,向我建议了一个条件聚合命令,但它没有提到如何使用我正在使用的Laravel/PHP/Mysql数据检索方法 我可能只是错误地理解了这一点,或者使用了错误的方法来检索数据,但在使用以下方法提取特定列数据时会产生错误: foreach($cargodb->get_results( " SELECT terminal, month, SUM(CASE WHEN year = YEAR(CURDATE())
foreach($cargodb->get_results(
"
SELECT
terminal,
month,
SUM(CASE WHEN year = YEAR(CURDATE()) THEN tonneCount ELSE 0 END) tonnage_cy,
SUM(CASE WHEN year = YEAR(CURDATE()) - 1 THEN tonneCount ELSE 0 END) tonnage_ly
FROM volumes
WHERE year >= YEAR(CURDATE()) - 1
GROUP BY terminal, month
ORDER BY month desc
"
) as $key => $row) {
$tonnages = $row->tonneCount;
$terminal = $row->terminal;
$year = $row->year;
$month = $row->month;
$cargovolume_cy[] =
'<h4 class="cv-terminal-title">'.$terminal.' </h4>'.
'<div class="cargovolumes_cy">'.
'<div class="cargovolumes_cy-dates cvrow-'.$month.'-'.$year.'">'.
'<span class="cy-month"> '.$month.' </span>'.
'<span class="cy-year"> '.$year.' </span></div>'.
'<div class="cy-year-bar"><div class="cy-tonnage-bar"> </div>'.
'<span class="cy-tonnage" value="'.$tonnages.'"> '.$tonnages.' </span></div>'.
'</div>';
$cargovolume_ly[] =
// '<br />';
'<div class="cargovolumes_ly">'.
'<div class="cargovolumes_ly-dates">'.
'<span class="ly-month"> '.$month.' </span>'.
'<span class="ly-year"> '.$year.' </span></div>'.
'<div class="ly-year-bar"><div class="ly-tonnage-bar"> </div>'.
'<span class="ly-tonnage" value="'.$tonnages.'"> '.$tonnages.' </span></div>'.
'</div>';
};
从查询语句中
选择
终点站,
月,
总吨位(如果年份=年份(CURDATE()),则为吨数,否则为0尾),
总吨位(当年份=年份(CURDATE())-1时,则为吨数,否则为0尾)
--...
结果集中的字段有终端
,月份
,吨位
和吨位
但是,您正在尝试从未选择的字段中检索值
鉴于您希望检索每个月/年的吨数总和,我建议将year
作为组键包含在选择字段中,并简化聚合,如下所示:
选择
终点站,
月,
年,
合计(吨数)为吨数
从卷
其中year=year(CURDATE())-1或year=year(CURDATE())
按年份、终端、月份分组
按月订购说明
这可以通过原始查询完成。您会遇到什么错误?“$cargodb”是什么?产生错误
-什么错误?你的问题是什么?如果你不告诉我们你的问题,没有人能帮上忙。请访问帮助中心并阅读,以及如何创建帮助。
Notice: Undefined property: stdClass::$tonneCount
Notice: Undefined property: stdClass::$year