access中的子查询:如何获取前一行的计算值
Subquery in access: how to get previous row calculated value
我有table这是一个查询结果,在X中添加了计算字段来得到净值。
简化它,它看起来像这样:
period_start | period_end | gross | X | net |
|:----------:|:----------:|:-----:|:-:| ---:|
| 31.12.2007 | 31.12.2008 | 3000 |30 |2970 |
| 31.12.2008 | 30.11.2020 | 3000 |50 |2950 |
| 30.11.2020 | 30.07.2054 | 3000 |150|2850 |
我如何使用 ms-access 查询修改它以将 period_start 与 period_end 连接起来,以显示上个月的净收入?
我之前尝试过子查询来获取上一期间的值,但从未在计算过程中进行过。最好的结果是:
period_start | period_end | gross | X | net |
|:----------:|:----------:|:-----:|:-:| ---:|
| 31.12.2007 | 31.12.2008 | 3000 |30 |2970 |
| 31.12.2008 | 30.11.2020 | 2970 |50 |2920 |
| 30.11.2020 | 30.07.2054 | 2920 |150|2770 |
在另一个查询中使用查询结果。考虑:
SELECT Data.*,
gross - Nz((SELECT Sum(x) AS SX FROM Data AS Dupe WHERE Dupe.Period_end<Data.Period_end ),0) AS AdjGross,
gross - (SELECT Sum(x) AS SX FROM Data AS Dupe WHERE Dupe.Period_end<=Data.Period_end) AS AdjNet
FROM Data;
可能的替代方法是根据您的查询构建报告并使用文本框 RunningSum 属性。
我有table这是一个查询结果,在X中添加了计算字段来得到净值。 简化它,它看起来像这样:
period_start | period_end | gross | X | net |
|:----------:|:----------:|:-----:|:-:| ---:|
| 31.12.2007 | 31.12.2008 | 3000 |30 |2970 |
| 31.12.2008 | 30.11.2020 | 3000 |50 |2950 |
| 30.11.2020 | 30.07.2054 | 3000 |150|2850 |
我如何使用 ms-access 查询修改它以将 period_start 与 period_end 连接起来,以显示上个月的净收入? 我之前尝试过子查询来获取上一期间的值,但从未在计算过程中进行过。最好的结果是:
period_start | period_end | gross | X | net |
|:----------:|:----------:|:-----:|:-:| ---:|
| 31.12.2007 | 31.12.2008 | 3000 |30 |2970 |
| 31.12.2008 | 30.11.2020 | 2970 |50 |2920 |
| 30.11.2020 | 30.07.2054 | 2920 |150|2770 |
在另一个查询中使用查询结果。考虑:
SELECT Data.*,
gross - Nz((SELECT Sum(x) AS SX FROM Data AS Dupe WHERE Dupe.Period_end<Data.Period_end ),0) AS AdjGross,
gross - (SELECT Sum(x) AS SX FROM Data AS Dupe WHERE Dupe.Period_end<=Data.Period_end) AS AdjNet
FROM Data;
可能的替代方法是根据您的查询构建报告并使用文本框 RunningSum 属性。