2 Commits

View File

@@ -87,10 +87,10 @@
DOSAGEID,
CUSTOMID,
SALERID,
SUM( MONTHSAQTY ) AS THISSAQTY,
SUM( MONTHSAMONEY ) AS THISSAMONEY,
SUM( MONTHCOST) as THISCOST,
SUM( MONTHPROFIT ) AS THISPROFIT
SUM( MONTHSAQTY ) AS THISSAQTY, -- 本年销量
SUM( MONTHSAMONEY ) AS THISSAMONEY, -- 本年销售金额
SUM( MONTHCOST) as THISCOST, -- 本年毛利额
SUM( MONTHPROFIT ) AS THISPROFIT -- 本年毛利额
FROM
yunji_gr_bi_sa_agg
GROUP BY
@@ -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;
</update>
@@ -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 );
</update>
<update id="updateComplexCalculate5">
@@ -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);
</update>