我从WeekProdQty列开始:

mysql - 如何在SQL语句中复制以下excel计算?-LMLPHP

我希望我的输出如下:

mysql - 如何在SQL语句中复制以下excel计算?-LMLPHP

我使用以下excel公式获取此输出:

在单元格D2中:=IF(B2=B1, IF(C2=C1, "N", "Y"), "N")
在单元格E2中:=IF(D2="N", "NA", C2-C1)

我想在SQL语句中复制相同的内容。我不确定该如何开始。

最佳答案

我了解您正在尝试比较连续几周每种给定产品的数量。在SQL中,您可以通过使用LEFT JOIN子句将表自身与表连接起来(同一产品和下周)来实现。当没有匹配项时(给定产品的下周没有),join子句将产生NULL值。基于此,您可以实现比较逻辑。

您用oraclemysql标记了您的问题,我不知道它是否确实是有目的的,但是此解决方案应同时适用于这两个问题:

select
    t1.week,
    t1.prod,
    t1.qty,
    case
        when t2.week is null or t1.qty = t2.qty then 'N'
        else 'Y'
    end week_over_week_change,
    case
        when t2.week is null or t1.qty = t2.qty then 'NA'
        else t1.qty - t2.qty
    end week_over_week_change_qty
from table t1
left join table t2 on t2.prod = t2.prod and t2.week = t1.week + 1

关于mysql - 如何在SQL语句中复制以下excel计算?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53529887/

10-10 18:54