From 793e44423aafa5873ef2e26963661da613fba9b6 Mon Sep 17 00:00:00 2001 From: qixinzhi Date: Fri, 17 Nov 2023 10:12:29 +0800 Subject: [PATCH] * Fix metric field list with 'as'. --- module/metric/model.php | 2 +- module/metric/zen.php | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/module/metric/model.php b/module/metric/model.php index f2f242cd05..0bd7c562b8 100644 --- a/module/metric/model.php +++ b/module/metric/model.php @@ -459,7 +459,7 @@ class metricModel extends model $aliasList = array(); foreach($uniqueList as $field) { - if(strpos($field, '.') === false) + if(strpos($field, '.') === false || strpos(strtoupper($field), ' AS ') !== false) { $aliasList[] = $field; continue; diff --git a/module/metric/zen.php b/module/metric/zen.php index 72731d6042..0a41841328 100644 --- a/module/metric/zen.php +++ b/module/metric/zen.php @@ -237,9 +237,18 @@ class metricZen extends metric $pureRow = new stdclass(); foreach($calc->fieldList as $field) { - $extractField = explode('.', $field); - $pureField = end($extractField); - $aliasField = str_replace('.', '_', $field); + if(strpos(strtoupper($field), ' AS ') !== false) + { + $extractField = explode(' AS ', $field); + $pureField = end($extractField); + $aliasField = $pureField; + } + else + { + $extractField = explode('.', $field); + $pureField = end($extractField); + $aliasField = str_replace('.', '_', $field); + } $pureRow->$pureField = $row->$aliasField; }