mysql如果分母为零则输出零_MySQL - 在零除零NULL

我有以下查询来检索和计算来自2个给定期间的销售额,它们的实际增长以及它们的指数增长。MySQL - 在零除零NULL

参考指数增长为sales growth % + 100。所以,如果一个项目由8%上升,它的指数是108,就好像它承包 8%,该指数将是92

,当第一可比一年有0销售出现问题,并因此将实际增长值除以0,并将NULL返回给100以外的值。

如何停止查询在除零之后返回NULL,并使其返回0?

这是PHP应用程序的一部分,因此,如果解决方案在应用程序层中处理得更好,请在任何答案中相应地提出建议。

SELECT

product,

SUM(CASE WHEN yr = 2013 THEN sales ELSE 0 END) AS `period1`,

SUM(CASE WHEN yr = 2014 THEN sales ELSE 0 END) AS `period2`,

SUM(CASE WHEN yr = 2014 THEN sales ELSE 0 END) - SUM(CASE WHEN yr = 2013 THEN sales ELSE 0 END) AS `growth`,

(((SUM(CASE WHEN yr = 2014 THEN sales ELSE 0 END) - SUM(CASE WHEN yr = 2013 THEN sales ELSE 0 END))/

(SUM(CASE WHEN yr = 2013 THEN sales ELSE 0 END))) * 100) + 100 AS `index`

FROM

productlevel_data AS a

WHERE

`group` = 'Confectionery'

AND class = 'Confectionery'

AND category = 'Confectionery'

AND subcategory = 'Seasonal'

AND brand = 'brand'

AND destination LIKE '%'

GROUP BY product

+0

'WHERE sales!= 0'? –

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值