在SELECT结果行上执行数学运算

时间:2016-04-12 17:37:40

标签: sql math equation

我有一张存放客户余额的表格,我需要能够查看帐户数字在上个月的每个帐户余额中下降了一定百分比。

我的输出包含帐户ID,year_month组合代码和月末余额。因此,我想看看2月份的余额是否从1月份下降了X%,以及1月份的平均值是否从12月份下降了相同的百分比。如果它确实下降了,那么我希望能够看到它丢弃的year_month代码,是的,我可以有多个drop的1个帐户,我希望看到它。

任何人都有关于如何在SQL中执行此操作的想法吗?

编辑:根据要求添加一些样本数据。我在桌子上看到我将year_month作为专栏,但我也有权获得每个月的最后一个工作日日期

account_id | year_month |结束余额

1 | 2016-1 | 50000

1 | 2016-2 | 40000

1 | 2016-3 | 25

我希望看到的输出是year_month代码,当期末余额比上个月至少下降50%时。

1 个答案:

答案 0 :(得分:0)

首先,我建议将Year_Month作为此计算的yyyy-mm-dd格式日期。然后获取当前表并将其加入自身,但您加入的日期将是上个月。然后在选择中执行计算。所以你可以在下面做这样的事情。

SELECT x.*, 
       x.EndingBalance - y.EndingBalance 
FROM Balances x 
INNER JOIN Balances y ON x.AccountID = y.AccountID 
                     and x.YearMonth = DATEADD(month, DATEDIFF(month, 0, x.YearMonth) - 1, 0)