我可以每天比较当前月份和上个月吗?

时间:2017-11-14 14:56:16

标签: sql sql-server

如何比较当前月份与上个月的每日?

我要创建一个报告,将当前月份与上个月进行比较,但我写的代码只有一列中的卷和值。理想情况下,我将上个月的数据放在一列中,将这几个月的数据放在另一列中。

提前致谢

1 个答案:

答案 0 :(得分:2)

每当您想要比较同一个表的行时,您必须将表连接到自身并将其分配给不同的别名(此处为AB):

SELECT A.Value - B.Value As Difference, ...
FROM
    myTable A
    INNER JOIN myTable B
        ON A.theDate = DATEADD(month, 1, B.theDate);

此处A表代表当前月份,其中B代表上个月。我假设日期不包含时间,并且您有纯日期(即时间= 00:00:00)。但是,如果您有时间,可以使用CAST(theDate As Date)截断它们。

您可能必须向join ON子句添加其他条件,例如AND A.CustomerID = B.CustomerID以获得正确的行配对。如果要限制日期范围,还要添加where子句。