分组依据或案例逻辑问题(类似于Excel中的SUMIFS)

时间:2017-05-02 21:35:42

标签: mysql sql

我有一个临时表,我试图对数据进行求和,但似乎无法获得正确的逻辑。该表包含客户级数据,现在我尝试按会计年度,季度和产品说明进行汇总。我试图通过回溯1年并使用相同的季度来计算出售的单位数量。

我可以在excel中执行此操作,但表格太大了。这就是Excel中的公式:

=SUMIFS(Units,FiscalYearQuarter >= Concat(FiscalYear -1 & FiscalQuarter, FiscalYearQuarter <= Concat(FiscalYear, FiscalQuarter)

这是表格的一个例子:

这里的结果应该是什么样的(这不包括产品描述,但我想在其中添加):

每当我尝试分组或做一个Sum(Case When ...)时,我只会按财政年度/季度而不是一年的历史总和得到结果。

1 个答案:

答案 0 :(得分:0)

一个简单的GROUP BY会起作用(虽然我不太了解带连接的Excel逻辑):

SELECT t1.FiscalYear, t1.FiscalQuater, sum(t2.UnitsPurchased)
  FROM `table` t1
       LEFT JOIN `table` t2
          ON    (    t1.FiscalYear = t2.FiscalYear + 1
                 AND t1.FiscalQuater < t2.FiscalQuater)
             OR (    t1.FiscalYear = t2.FiscalYear
                 AND t1.FiscalQuater >= t2.FiscalQuater)
GROUP BY t1.FiscalYear, t1.FiscalQuater

编辑1 基于作者反馈的修改查询