Php 如何从Laravel MySQL循环条件聚合中检索$key as to$row数据?

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())

为了缩短数据库调用,向我建议了一个条件聚合命令,但它没有提到如何使用我正在使用的Laravel/PHP/Mysql数据检索方法

我可能只是错误地理解了这一点,或者使用了错误的方法来检索数据,但在使用以下方法提取特定列数据时会产生错误:

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">&nbsp;</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">&nbsp;</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