不一致值为了在同一行中显示较前期一些记录,我有我的表连接到自己是这样的:自连接生成上个月
SELECT
a.[periodOrderNum]
,SUM(a.AktivNy) as ActiveNew
,SUM(b.[AktivNy]) as ActiveNewPrevMonth
FROM myTable a
JOIN myTable b
ON a.customerSNKey = b.customerSNKey
AND a.periodOrderNum = b.periodOrderNum + 1
GROUP BY a.[periodOrderNum]
在上面的代码periodOrderNum
是订单编号分配给期间。例如,如果当前时间段是5,则前一时间段的订单号为4.
而customerSNKey
是客户的序列号密钥,我将其用作我的JOIN
条件之一。其他条件(a.periodOrderNum = b.periodOrderNum + 1
)我用来获取前一期的价值。但结果并不一致。正如下面的图片中看到,订单号280的ActiveNewPrevMonth
值为20203这不是订单号码279.
的ActiveNew
值什么我在我加入做错了什么?
很难说,因为没有显示所有的数据。我会在没有连接的情况下运行查询,并使用“AND periodOrderNum = 280”来查看它试图进行SUM操作的情况,只是为了确保。你可以将这些结果添加到你的问题吗? –
组成一些数据并显示DDL,输入,输出和预期输出。阅读[mcve]并采取行动。 PS如果没有上个月的数据会怎么样? – philipxy