From 70e5ed81f68ec6feea7038c3ce486f9a432f334a Mon Sep 17 00:00:00 2001 From: king Date: Thu, 12 Mar 2026 10:57:58 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A1=E7=AE=97=E9=94=80=E5=94=AE=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8-=E5=A2=9E=E5=8A=A0=E8=AE=A1=E7=AE=97=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=20=20=E8=B0=83=E6=95=B4=E9=99=A40=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/framework/GrBiSaAggMapper.xml | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/lidee-core/src/main/resources/mapper/framework/GrBiSaAggMapper.xml b/lidee-core/src/main/resources/mapper/framework/GrBiSaAggMapper.xml index 1573027..7ede037 100644 --- a/lidee-core/src/main/resources/mapper/framework/GrBiSaAggMapper.xml +++ b/lidee-core/src/main/resources/mapper/framework/GrBiSaAggMapper.xml @@ -165,11 +165,11 @@ UPDATE yunji_gr_bi_sa_agg SET MONTHPROFITRATE = CASE WHEN MONTHSAMONEY = 0 or MONTHSAMONEY is null THEN - 100 ELSE MONTHPROFIT/ MONTHSAMONEY * 100 END, + IF(MONTHPROFIT > 0, 100, 0) ELSE MONTHPROFIT/ MONTHSAMONEY * 100 END, THISPROFITRATE = CASE WHEN THISSAMONEY = 0 or THISSAMONEY is null THEN - 100 ELSE THISPROFIT/ THISSAMONEY * 100 END, + IF(THISPROFIT > 0, 100, 0) ELSE THISPROFIT/ THISSAMONEY * 100 END, LASTPROFITRATE =CASE WHEN LASTSAMONEY = 0 or LASTSAMONEY is null THEN - 100 ELSE LASTPROFIT/ LASTSAMONEY * 100 END; + IF(LASTPROFIT > 0, 100, 0) ELSE LASTPROFIT/ LASTSAMONEY * 100 END; @@ -229,8 +229,8 @@ USEYEAR, USEMONTH ) b ON b.USEYEAR = a.USEYEAR - SET a.LASTSAMONEYSHARE = COALESCE (ROUND( CASE WHEN LASTSAMONEY_SUM = 0 or LASTSAMONEY_SUM is null THEN 1 ELSE a.LASTSAMONEY/b.LASTSAMONEY_SUM * 100 END, 2), 0 ), - a.LASTPROFITSHARE = COALESCE (ROUND( CASE WHEN LASTPROFIT_SUM = 0 or LASTPROFIT_SUM is null THEN 1 ELSE a.LASTPROFIT/b.LASTPROFIT_SUM * 100 END, 2), 0 ); + SET a.LASTSAMONEYSHARE = COALESCE (ROUND( CASE WHEN LASTSAMONEY_SUM = 0 or LASTSAMONEY_SUM is null THEN IF(a.LASTSAMONEY > 0, 100, 0) ELSE a.LASTSAMONEY/b.LASTSAMONEY_SUM * 100 END, 2), 0 ), + a.LASTPROFITSHARE = COALESCE (ROUND( CASE WHEN LASTPROFIT_SUM = 0 or LASTPROFIT_SUM is null THEN IF(a.LASTPROFIT > 0, 100, 0) ELSE a.LASTPROFIT/b.LASTPROFIT_SUM * 100 END, 2), 0 ); @@ -240,18 +240,14 @@ UPDATE yunji_gr_bi_sa_agg SET SAMONEYGROWTH = CASE - WHEN ( LASTSAMONEY = 0 OR LASTSAMONEY IS NULL ) - AND THISSAMONEY IS NOT NULL THEN - 100 - WHEN THISPROFIT IS NULL THEN - 0 ELSE ( THISSAMONEY - LASTSAMONEY )/ LASTSAMONEY * 100 + WHEN ( LASTSAMONEY = 0 OR LASTSAMONEY IS NULL ) AND THISSAMONEY IS NOT NULL + THEN IF((THISSAMONEY - LASTSAMONEY) > 0, 100, 0) + ELSE ( THISSAMONEY - LASTSAMONEY )/ LASTSAMONEY * 100 END, PROFITGROWTH = CASE - WHEN ( LASTPROFIT = 0 OR LASTPROFIT IS NULL ) - AND THISPROFIT IS NOT NULL THEN - 100 - WHEN THISPROFIT IS NULL THEN - 0 ELSE ( THISPROFIT - LASTPROFIT )/ LASTPROFIT * 100 + WHEN ( LASTPROFIT = 0 OR LASTPROFIT IS NULL ) AND THISPROFIT IS NOT NULL + THEN IF((THISSAMONEY - LASTSAMONEY) > 0, 100, 0) + ELSE ( THISPROFIT - LASTPROFIT )/ LASTPROFIT * 100 END, PROFITCHANGE = ( THISPROFIT - LASTPROFIT);