MySQL社区

标题: 求不连续月份的金额累计值 [打印本页]

作者: cwui    时间: 2017-1-8 19:39
标题: 求不连续月份的金额累计值
本帖最后由 cwui 于 2017-1-8 19:41 编辑

表A,没有7月份数据(MONAT = '07')


现需要计算某月(不包含)之后所有月份ZJ_B的合计值。
比如:查询MONAT = '10' , 那么结果就是11月和12月合计值,即110+120 =230
我写的代码如下:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·
select
  A1.BUKRS,
  A1.GJAHR,
  A1.MONAT,
  A1.ANLN1,
  A1.ANLN2,
  SUM(A2.ZJ_B) AS ZJ_B
  
from A AS A1 inner join A AS A2
   on A1.BUKRS = A2.BUKRS
and A1.GJAHR = A2.GJAHR
and A1.ANLN1 = A2.ANLN1
and A1.ANLN2 = A2.ANLN2
and A1.MONAT < A2.MONAT
  
group by
      A1.BUKRS,
      A1.GJAHR,
      A1.MONAT,
      A1.ANLN1,
      A1.ANLN2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A自己inner join一次,取A1-MONAT, 取A2-ZJ_B, 不添加where 条件,结果是对的。

如果group by上面添加where A1.MONAT = '07', 结果变成空了(A表没有7月份这行数据)



问题是: 如何在添加where A1.MONAT= '07'的情况下,7月为空,但继续合计后面的月份,即8月到12月的ZJ_B?




作者: cwui    时间: 2017-1-9 17:34
已经搞定
作者: kider    时间: 2017-1-10 13:14
顶一个,可以分享你的解决方法




欢迎光临 MySQL社区 (http://www.mysqlpub.com/) Powered by Discuz! X3.2