如何比较当前月份与上个月的每日?
我要创建一个报告,将当前月份与上个月进行比较,但我写的代码只有一列中的卷和值。理想情况下,我将上个月的数据放在一列中,将这几个月的数据放在另一列中。
提前致谢
答案 0 :(得分:2)
每当您想要比较同一个表的行时,您必须将表连接到自身并将其分配给不同的别名(此处为A
和B
):
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子句。