@@ -31,9 +31,17 @@ public class zhxsqkLineReportEnhance implements ReportBeforeAdvicePlugin {
}
if ( groupFieldList . contains ( " useyear " ) | | params . containsKey ( " useyear " ) ) { //年
executePluginSql . append ( " tbl_lgbsa.USEYEAR, \ n " ) ;
if ( ! ( groupFieldList . contains ( " usemonth " ) | | params . containsKey ( " usemonth " ) ) ) {
executePluginSql . append ( " MAX(USEYEAR) as ny, \ n " ) ; //年月
}
}
if ( groupFieldList . contains ( " usemonth " ) | | params . containsKey ( " usemonth " ) ) { //月
executePluginSql . append ( " tbl_lgbsa.USEMONTH, \ n " ) ;
if ( groupFieldList . contains ( " useyear " ) | | params . containsKey ( " useyear " ) ) {
executePluginSql . append ( " MAX(CONCAT(USEYEAR, LPAD(USEMONTH, 2, '0'))) as ny, \ n " ) ; //年月
} else {
executePluginSql . append ( " MAX(LPAD(USEMONTH, 2, '0')) as ny, \ n " ) ;
}
}
if ( groupFieldList . contains ( " zonename " ) | | params . containsKey ( " zonename " ) ) { //业务区域
executePluginSql . append ( " tbl_lgbsa.ZONEID, \ n " ) ;
@@ -55,75 +63,137 @@ public class zhxsqkLineReportEnhance implements ReportBeforeAdvicePlugin {
executePluginSql . append ( " tbl_lgbsa.GOODSID, \ n " ) ;
executePluginSql . append ( " tbl_lgbsa.GOODSNAME, \ n " ) ;
}
executePluginSql . append ( " MAX(CONCAT(USEYEAR, LPAD(USEMONTH, 2, '0'))) as ny, \ n " ) ; //年月
executePluginSql . append ( " GROUP_CONCAT(DISTINCT tbl_lgbsa.PROVINCEID ORDER BY tbl_lgbsa.PROVINCEID SEPARATOR ',') as PROVINCEID, \ n " ) ; //行政区域ID
executePluginSql . append ( " GROUP_CONCAT(DISTINCT tbl_lgbsa.PROVINCENAME ORDER BY tbl_lgbsa.PROVINCEID SEPARATOR ',') as PROVINCENAME, \ n " ) ; //行政区域名称
executePluginSql . append ( " SUM(tbl_lgbsa.MONTHSAQTY) as MONTHSAQTY, \ n " ) ; //本月销量
executePluginSql . append ( " CONCAT(ROUND((SELECT SUM(MONTHSAQTY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS monthsaqty_s, \ n " ) ;
executePluginSql . append ( " CONCAT(ROUND((SELECT SUM(THISSAQTY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS thissaqty_s, \ n " ) ;
executePluginSql . append ( " CONCAT(ROUND((SELECT SUM(LASTSAQTY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS lastsaqty_s, \ n " ) ;
executePluginSql . append ( " -- 原本带CAST的字段, 简化写法( CONCAT会自动转为字符串) \ n " ) ;
executePluginSql . append ( " CONCAT(ROUND((SELECT SUM(MONTHSAMONEY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS monthsamoney_s, \ n " ) ;
executePluginSql . append ( " CONCAT(ROUND((SELECT SUM(THISSAMONEY) FROM yunji_gr_bi_sa_agg)/100000000,2), '亿') AS thissamoney_s, \ n " ) ;
executePluginSql . append ( " CONCAT(ROUND((SELECT SUM(LASTSAMONEY) FROM yunji_gr_bi_sa_agg)/100000000,2), '亿') AS lastsamoney_s, \ n " ) ;
executePluginSql . append ( " CASE \ n " ) ;
executePluginSql . append ( " WHEN (CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAQTY) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum(tbl_lgbsa.MONTHSAQTY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) * 100 END) > 0 THEN \ n " ) ;
executePluginSql . append ( " CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAQTY) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum(tbl_lgbsa.MONTHSAQTY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) * 100 END), 2)) \ n " ) ;
executePluginSql . append ( " WHEN (CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAQTY) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum(tbl_lgbsa.MONTHSAQTY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) * 100 END) < 0 THEN \ n " ) ;
executePluginSql . append ( " CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAQTY) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum(tbl_lgbsa.MONTHSAQTY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) * 100 END), 2)) \ n " ) ;
executePluginSql . append ( " ELSE '0.00' \ n " ) ;
executePluginSql . append ( " END AS monthsaqty_yoy, \ n " ) ;
// executePluginSql.append(" CONCAT(ROUND((SELECT SUM(MONTHSAQTY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS monthsaqty_s, \n");
// executePluginSql.append(" CONCAT(ROUND((SELECT SUM(THISSAQTY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS thissaqty_s, \n");
// executePluginSql.append(" CONCAT(ROUND((SELECT SUM(LASTSAQTY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS lastsaqty_s, \n");
// executePluginSql.append(" -- 原本带CAST的字段, 简化写法( CONCAT会自动转为字符串) \n");
// executePluginSql.append(" CONCAT(ROUND((SELECT SUM(MONTHSAMONEY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS monthsamoney_s, \n");
// executePluginSql.append(" CONCAT(ROUND((SELECT SUM(THISSAMONEY) FROM yunji_gr_bi_sa_agg)/100000000,2), '亿') AS thissamoney_s, \n");
// executePluginSql.append(" CONCAT(ROUND((SELECT SUM(LASTSAMONEY) FROM yunji_gr_bi_sa_agg)/100000000,2), '亿') AS lastsamoney_s, \n");
executePluginSql . append ( " SUM(tbl_lgbsa.THISSAQTY) as THISSAQTY, \ n " ) ; //本年销量
executePluginSql . append ( " SUM(tbl_lgbsa.LASTSAQTY) as LASTSAQTY, \ n " ) ; //上年销量
executePluginSql . append ( " -- 数量同比(原有) \ n " ) ;
executePluginSql . append ( " CASE \ n " ) ;
executePluginSql . append ( " WHEN (CASE WHEN sum(tbl_lgbsa.LASTSAQTY) = 0 THEN IF(sum(tbl_lgbsa.THISSAQTY) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum (tbl_lgbsa.THISSAQTY) - sum(tbl_lgbsa.LASTSAQTY)) / sum(tbl_lgbsa.LASTSAQTY) * 100 END) > 0 THEN \ n " ) ;
executePluginSql . append ( " ELSE (MAX (tbl_lgbsa.THISSAQTY) - sum(tbl_lgbsa.LASTSAQTY)) / sum(tbl_lgbsa.LASTSAQTY) * 100 END) > 0 THEN \ n " ) ;
executePluginSql . append ( " CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTSAQTY) = 0 THEN IF(sum(tbl_lgbsa.THISSAQTY) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum (tbl_lgbsa.THISSAQTY) - sum(tbl_lgbsa.LASTSAQTY)) / sum(tbl_lgbsa.LASTSAQTY) * 100 END), 2), '%' ) \ n " ) ;
executePluginSql . append ( " ELSE (MAX (tbl_lgbsa.THISSAQTY) - sum(tbl_lgbsa.LASTSAQTY)) / sum(tbl_lgbsa.LASTSAQTY) * 100 END), 2)) \ n " ) ;
executePluginSql . append ( " WHEN (CASE WHEN sum(tbl_lgbsa.LASTSAQTY) = 0 THEN IF(sum(tbl_lgbsa.THISSAQTY) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum (tbl_lgbsa.THISSAQTY) - sum(tbl_lgbsa.LASTSAQTY)) / sum(tbl_lgbsa.LASTSAQTY) * 100 END) < 0 THEN \ n " ) ;
executePluginSql . append ( " ELSE (MAX (tbl_lgbsa.THISSAQTY) - sum(tbl_lgbsa.LASTSAQTY)) / sum(tbl_lgbsa.LASTSAQTY) * 100 END) < 0 THEN \ n " ) ;
executePluginSql . append ( " CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTSAQTY) = 0 THEN IF(sum(tbl_lgbsa.THISSAQTY) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum (tbl_lgbsa.THISSAQTY) - sum(tbl_lgbsa.LASTSAQTY)) / sum(tbl_lgbsa.LASTSAQTY) * 100 END), 2), '%' ) \ n " ) ;
executePluginSql . append ( " ELSE '0.00% ' \ n " ) ;
executePluginSql . append ( " ELSE (MAX (tbl_lgbsa.THISSAQTY) - sum(tbl_lgbsa.LASTSAQTY)) / sum(tbl_lgbsa.LASTSAQTY) * 100 END), 2)) \ n " ) ;
executePluginSql . append ( " ELSE '0.00' \ n " ) ;
executePluginSql . append ( " END AS saqty_yoy, \ n " ) ;
executePluginSql . append ( " CONCAT( ROUND(SUM(tbl_lgbsa.MONTHSAMONEY) / 10000, 2), '万') as MONTHSAMONEY, \ n " ) ; //本月销售金额(元)
executePluginSql . append ( " CONCAT(ROUND(SUM(tbl_lgbsa.THISSAMONEY) / 10000, 2), '万') as THISSAMONEY, \ n " ) ; //本年销售金额(元)
executePluginSql . append ( " CONCAT(ROUND(SUM(tbl_lgbsa.LASTSAMONEY) / 10000, 2), '万') as LASTSAMONEY, \ n " ) ; //上年销售金额(元)
executePluginSql . append ( " ROUND(SUM(tbl_lgbsa.MONTHSAMONEY) / 10000, 2) as MONTHSAMONEY, \ n " ) ; //本月销售金额(元)
executePluginSql . append ( " CASE \ n " ) ;
executePluginSql . append ( " WHEN (CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) * 100 END) > 0 THEN \ n " ) ;
executePluginSql . append ( " CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) * 100 END), 2)) \ n " ) ;
executePluginSql . append ( " WHEN (CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) * 100 END) < 0 THEN \ n " ) ;
executePluginSql . append ( " CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) * 100 END), 2)) \ n " ) ;
executePluginSql . append ( " ELSE '0.00' \ n " ) ;
executePluginSql . append ( " END AS monthsamoney_yoy, \ n " ) ;
executePluginSql . append ( " ROUND(SUM(tbl_lgbsa.THISSAMONEY) / 10000, 2) as THISSAMONEY, \ n " ) ; //本年销售金额(元)
executePluginSql . append ( " CASE \ n " ) ;
executePluginSql . append ( " WHEN (CASE WHEN sum(tbl_lgbsa.LAST_MONTH_SAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LAST_MONTH_SAMONEY)) / sum(tbl_lgbsa.LAST_MONTH_SAMONEY) * 100 END) > 0 THEN \ n " ) ;
executePluginSql . append ( " CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsa.LAST_MONTH_SAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LAST_MONTH_SAMONEY)) / sum(tbl_lgbsa.LAST_MONTH_SAMONEY) * 100 END), 2)) \ n " ) ;
executePluginSql . append ( " WHEN (CASE WHEN sum(tbl_lgbsa.LAST_MONTH_SAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LAST_MONTH_SAMONEY)) / sum(tbl_lgbsa.LAST_MONTH_SAMONEY) * 100 END) < 0 THEN \ n " ) ;
executePluginSql . append ( " CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LAST_MONTH_SAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LAST_MONTH_SAMONEY)) / sum(tbl_lgbsa.LAST_MONTH_SAMONEY) * 100 END), 2)) \ n " ) ;
executePluginSql . append ( " ELSE '0.00' \ n " ) ;
executePluginSql . append ( " END AS lastMonthSaMoney_yoy, \ n " ) ; //本月销售金额增长率
executePluginSql . append ( " ROUND(SUM(tbl_lgbsa.LASTSAMONEY) / 10000, 2) as LASTSAMONEY, \ n " ) ; //上年销售金额(元)
executePluginSql . append ( " -- 销售金额同比(原有新增) \ n " ) ;
executePluginSql . append ( " CASE \ n " ) ;
executePluginSql . append ( " WHEN (CASE WHEN sum(tbl_lgbsa.LASTSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.THISSAMONEY) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum (tbl_lgbsa.THISSAMONEY) - sum(tbl_lgbsa.LASTSAMONEY)) / sum(tbl_lgbsa.LASTSAMONEY) * 100 END) > 0 THEN \ n " ) ;
executePluginSql . append ( " ELSE (MAX (tbl_lgbsa.THISSAMONEY) - sum(tbl_lgbsa.LASTSAMONEY)) / sum(tbl_lgbsa.LASTSAMONEY) * 100 END) > 0 THEN \ n " ) ;
executePluginSql . append ( " CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.THISSAMONEY) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum (tbl_lgbsa.THISSAMONEY) - sum(tbl_lgbsa.LASTSAMONEY)) / sum(tbl_lgbsa.LASTSAMONEY) * 100 END), 2), '%' ) \ n " ) ;
executePluginSql . append ( " ELSE (MAX (tbl_lgbsa.THISSAMONEY) - sum(tbl_lgbsa.LASTSAMONEY)) / sum(tbl_lgbsa.LASTSAMONEY) * 100 END), 2)) \ n " ) ;
executePluginSql . append ( " WHEN (CASE WHEN sum(tbl_lgbsa.LASTSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.THISSAMONEY) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum (tbl_lgbsa.THISSAMONEY) - sum(tbl_lgbsa.LASTSAMONEY)) / sum(tbl_lgbsa.LASTSAMONEY) * 100 END) < 0 THEN \ n " ) ;
executePluginSql . append ( " ELSE (MAX (tbl_lgbsa.THISSAMONEY) - sum(tbl_lgbsa.LASTSAMONEY)) / sum(tbl_lgbsa.LASTSAMONEY) * 100 END) < 0 THEN \ n " ) ;
executePluginSql . append ( " CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.THISSAMONEY) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum (tbl_lgbsa.THISSAMONEY) - sum(tbl_lgbsa.LASTSAMONEY)) / sum(tbl_lgbsa.LASTSAMONEY) * 100 END), 2), '%' ) \ n " ) ;
executePluginSql . append ( " ELSE '0.00% ' \ n " ) ;
executePluginSql . append ( " ELSE (MAX (tbl_lgbsa.THISSAMONEY) - sum(tbl_lgbsa.LASTSAMONEY)) / sum(tbl_lgbsa.LASTSAMONEY) * 100 END), 2)) \ n " ) ;
executePluginSql . append ( " ELSE '0.00' \ n " ) ;
executePluginSql . append ( " END AS samoney_yoy, \ n " ) ; //销售收入同比
executePluginSql . append ( " CONCAT( ROUND(SUM(tbl_lgbsa.MONTHPROFIT) / 10000, 2), '万') as MONTHPROFIT, \ n " ) ; //本月毛利额(元)
executePluginSql . append ( " CONCAT(ROUND(SUM(tbl_lgbsa.THISPROFIT) / 10000, 2), '万') as THISPROFIT, \ n " ) ; //本年毛利额(元)
executePluginSql . append ( " CONCAT(ROUND(SUM(tbl_lgbsa.LASTPROFIT) / 10000, 2), '万') as LASTPROFIT, \ n " ) ; //上年毛利额(元)
executePluginSql . append ( " ROUND(SUM(tbl_lgbsa.MONTHPROFIT) / 10000, 2) as MONTHPROFIT, \ n " ) ; //本月毛利额(元)
executePluginSql . append ( " CASE \ n " ) ;
executePluginSql . append ( " WHEN (CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT) = 0 THEN IF(sum(tbl_lgbsa.MONTHPROFIT) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum(tbl_lgbsa.MONTHPROFIT) - sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT)) / sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT) * 100 END) > 0 THEN \ n " ) ;
executePluginSql . append ( " CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT) = 0 THEN IF(sum(tbl_lgbsa.MONTHPROFIT) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum(tbl_lgbsa.MONTHPROFIT) - sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT)) / sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT) * 100 END), 2)) \ n " ) ;
executePluginSql . append ( " WHEN (CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT) = 0 THEN IF(sum(tbl_lgbsa.MONTHPROFIT) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum(tbl_lgbsa.MONTHPROFIT) - sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT)) / sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT) * 100 END) < 0 THEN \ n " ) ;
executePluginSql . append ( " CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT) = 0 THEN IF(sum(tbl_lgbsa.MONTHPROFIT) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum(tbl_lgbsa.MONTHPROFIT) - sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT)) / sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT) * 100 END), 2)) \ n " ) ;
executePluginSql . append ( " ELSE '0.00' \ n " ) ;
executePluginSql . append ( " END AS monthprofit_yoy, \ n " ) ; //年度毛利同比
executePluginSql . append ( " ROUND(MAX(tbl_lgbsa.THISPROFIT) / 10000, 2) as THISPROFIT, \ n " ) ; //本年毛利额(元)
executePluginSql . append ( " ROUND(MAX(tbl_lgbsa.LASTPROFIT) / 10000, 2) as LASTPROFIT, \ n " ) ; //上年毛利额(元)
executePluginSql . append ( " -- 新增:毛利同比 \ n " ) ;
executePluginSql . append ( " CASE \ n " ) ;
executePluginSql . append ( " -- 正数: 红色圆点emoji + 数值 + % \ n " ) ;
executePluginSql . append ( " WHEN (CASE WHEN sum(tbl_lgbsa.LASTPROFIT) = 0 THEN IF(sum (tbl_lgbsa.THISPROFIT) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum (tbl_lgbsa.THISPROFIT) - sum(tbl_lgbsa.LASTPROFIT)) / sum(tbl_lgbsa.LASTPROFIT) * 100 END) > 0 THEN \ n " ) ;
executePluginSql . append ( " WHEN (CASE WHEN sum(tbl_lgbsa.LASTPROFIT) = 0 THEN IF(MAX (tbl_lgbsa.THISPROFIT) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (MAX (tbl_lgbsa.THISPROFIT) - sum(tbl_lgbsa.LASTPROFIT)) / sum(tbl_lgbsa.LASTPROFIT) * 100 END) > 0 THEN \ n " ) ;
executePluginSql . append ( " CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTPROFIT) = 0 THEN IF(sum(tbl_lgbsa.THISPROFIT) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum (tbl_lgbsa.THISPROFIT) - sum(tbl_lgbsa.LASTPROFIT)) / sum(tbl_lgbsa.LASTPROFIT) * 100 END), 2), '%' ) \ n " ) ;
executePluginSql . append ( " ELSE (MAX (tbl_lgbsa.THISPROFIT) - sum(tbl_lgbsa.LASTPROFIT)) / sum(tbl_lgbsa.LASTPROFIT) * 100 END), 2)) \ n " ) ;
executePluginSql . append ( " -- 负数: 绿色圆点emoji + 数值 + % \ n " ) ;
executePluginSql . append ( " WHEN (CASE WHEN sum(tbl_lgbsa.LASTPROFIT) = 0 THEN IF(sum(tbl_lgbsa.THISPROFIT) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum (tbl_lgbsa.THISPROFIT) - sum(tbl_lgbsa.LASTPROFIT)) / sum(tbl_lgbsa.LASTPROFIT) * 100 END) < 0 THEN \ n " ) ;
executePluginSql . append ( " CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTPROFIT) = 0 THEN IF(sum (tbl_lgbsa.THISPROFIT) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum (tbl_lgbsa.THISPROFIT) - sum(tbl_lgbsa.LASTPROFIT)) / sum(tbl_lgbsa.LASTPROFIT) * 100 END), 2), '%' ) \ n " ) ;
executePluginSql . append ( " WHEN (CASE WHEN sum(tbl_lgbsa.LASTPROFIT) = 0 THEN IF(sum(tbl_lgbsa.THISPROFIT) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (MAX (tbl_lgbsa.THISPROFIT) - sum(tbl_lgbsa.LASTPROFIT)) / sum(tbl_lgbsa.LASTPROFIT) * 100 END) < 0 THEN \ n " ) ;
executePluginSql . append ( " CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTPROFIT) = 0 THEN IF(MAX (tbl_lgbsa.THISPROFIT) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (MAX (tbl_lgbsa.THISPROFIT) - sum(tbl_lgbsa.LASTPROFIT)) / sum(tbl_lgbsa.LASTPROFIT) * 100 END), 2)) \ n " ) ;
executePluginSql . append ( " -- 0值: 直接显示 \ n " ) ;
executePluginSql . append ( " ELSE '0.00% ' \ n " ) ;
executePluginSql . append ( " ELSE '0.00' \ n " ) ;
executePluginSql . append ( " END AS profit_yoy, \ n " ) ; //毛利同比
executePluginSql . append ( " CONCAT( ROUND(SUM(tbl_lgbsa.MONTHCOST) / 10000, 2), '万') as MONTHCOST, \ n " ) ; //本月销售成本(元)
executePluginSql . append ( " ROUND(SUM(tbl_lgbsa.MONTHCOST) / 10000, 2) as MONTHCOST, \ n " ) ; //本月销售成本(元)
executePluginSql . append ( " ROUND(MAX(tbl_lgbsa.THISCOST) / 10000, 2) as THISCOST, \ n " ) ; //本年销售成本(元)
executePluginSql . append ( " CASE \ n " ) ;
executePluginSql . append ( " WHEN (CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHCOST) = 0 THEN IF(sum(tbl_lgbsa.MONTHCOST) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum(tbl_lgbsa.MONTHCOST) - sum(tbl_lgbsa.LASTYEAROFMONTHCOST)) / sum(tbl_lgbsa.LASTYEAROFMONTHCOST) * 100 END) > 0 THEN \ n " ) ;
executePluginSql . append ( " CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHCOST) = 0 THEN IF(sum(tbl_lgbsa.MONTHCOST) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum(tbl_lgbsa.MONTHCOST) - sum(tbl_lgbsa.LASTYEAROFMONTHCOST)) / sum(tbl_lgbsa.LASTYEAROFMONTHCOST) * 100 END), 2)) \ n " ) ;
executePluginSql . append ( " WHEN (CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHCOST) = 0 THEN IF(sum(tbl_lgbsa.MONTHCOST) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum(tbl_lgbsa.MONTHCOST) - sum(tbl_lgbsa.LASTYEAROFMONTHCOST)) / sum(tbl_lgbsa.LASTYEAROFMONTHCOST) * 100 END) < 0 THEN \ n " ) ;
executePluginSql . append ( " CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHCOST) = 0 THEN IF(sum(tbl_lgbsa.MONTHCOST) > 0, 100, 0) \ n " ) ;
executePluginSql . append ( " ELSE (sum(tbl_lgbsa.MONTHCOST) - sum(tbl_lgbsa.LASTYEAROFMONTHCOST)) / sum(tbl_lgbsa.LASTYEAROFMONTHCOST) * 100 END), 2)) \ n " ) ;
executePluginSql . append ( " ELSE '0.00' \ n " ) ;
executePluginSql . append ( " END AS monthcost_yoy, \ n " ) ; //本月销售成本同比
executePluginSql . append ( " ROUND(avg(tbl_lgbsa.PROFITCHANGE), 2) as PROFITCHANGE, \ n " ) ; //毛利变动(元)
executePluginSql . append ( " ROUND(avg(tbl_lgbsa.PROFITGROWTH), 2) as PROFITGROWTH, \ n " ) ; //毛利额增长率
executePluginSql . append ( " ROUND(avg(tbl_lgbsa.THISPROFITRATE), 2) as THISPROFITRATE, \ n " ) ; //本年毛利率
executePluginSql . append ( " ROUND(avg(tbl_lgbsa.SAMONEYGROWTH), 2) as SAMONEYGROWTH, \ n " ) ; //销售金额增长率
executePluginSql . append ( " CASE \ n " ) ;
executePluginSql . append ( " WHEN ROUND(avg(tbl_lgbsa.SAMONEYGROWTH), 2) > 0 THEN \ n " ) ;
executePluginSql . append ( " CONCAT('🟢 ', ROUND(avg(tbl_lgbsa.SAMONEYGROWTH), 2)) \ n " ) ;
executePluginSql . append ( " WHEN ROUND(avg(tbl_lgbsa.SAMONEYGROWTH), 2) < 0 THEN \ n " ) ;
executePluginSql . append ( " CONCAT('🔴 ', ROUND(avg(tbl_lgbsa.SAMONEYGROWTH), 2)) \ n " ) ;
executePluginSql . append ( " ELSE '0.00' \ n " ) ;
executePluginSql . append ( " END AS SAMONEYGROWTH, \ n " ) ; //销售金额增长率
executePluginSql . append ( " ROUND(avg(tbl_lgbsa.LASTPROFITSHARE) * 100, 2) as LASTPROFITSHARE, \ n " ) ; //上年毛利额占比
executePluginSql . append ( " CONCAT( ROUND(avg(tbl_lgbsa.THISPROFITSHARE) * 100, 2), '%') AS THISPROFITSHARE, \ n " ) ; //本年毛利额占比
executePluginSql . append ( " CONCAT( ROUND(avg(tbl_lgbsa.MONTHPROFITSHARE) * 100, 2), '%') AS MONTHPROFITSHARE, \ n " ) ; //本月毛利额占比
executePluginSql . append ( " CONCAT( ROUND(avg(tbl_lgbsa.LASTSAMONEYSHARE) * 100, 2), '%') AS LASTSAMONEYSHARE, \ n " ) ; //上年销售金额占比
executePluginSql . append ( " CONCAT( ROUND(avg(tbl_lgbsa.THISSAMONEYSHARE) * 100, 2), '%') AS THISSAMONEYSHARE, \ n " ) ; //本年销售金额占比
executePluginSql . append ( " CONCAT( ROUND(avg(tbl_lgbsa.MONTHSAMONEYSHARE) * 100, 2), '%') AS MONTHSAMONEYSHARE \ n " ) ; //本月销售金额占比
executePluginSql . append ( " ROUND(avg(tbl_lgbsa.THISPROFITSHARE) * 100, 2) AS THISPROFITSHARE, \ n " ) ; //本年毛利额占比
executePluginSql . append ( " ROUND(avg(tbl_lgbsa.MONTHPROFITSHARE) * 100, 2) AS MONTHPROFITSHARE, \ n " ) ; //本月毛利额占比
executePluginSql . append ( " ROUND(avg(tbl_lgbsa.LASTSAMONEYSHARE) * 100, 2) AS LASTSAMONEYSHARE, \ n " ) ; //上年销售金额占比
executePluginSql . append ( " ROUND(avg(tbl_lgbsa.THISSAMONEYSHARE) * 100, 2) AS THISSAMONEYSHARE, \ n " ) ; //本年销售金额占比
executePluginSql . append ( " ROUND(avg(tbl_lgbsa.MONTHSAMONEYSHARE) * 100, 2) AS MONTHSAMONEYSHARE \ n " ) ; //本月销售金额占比
executePluginSql . append ( " FROM \ n " ) ;
executePluginSql . append ( " yunji_gr_bi_sa_agg tbl_lgbsa \ n " ) ;
executePluginSql . append ( " GROUP BY \ n " ) ;