对于这个表,我需要根据给定的(+/-)运行总数来获取日期值。
+----+------------+---------+---------------+
| ID | DATE | AMOUNT | RUNNING TOTAL |
+----+------------+---------+---------------+
| 20 | 2020-04-24 | 2941.18 | 2,941.18 |
| 21 | 2020-05-01 | 2941.18 | 5,882.36 |
| 22 | 2020-05-08 | 2941.18 | 8,823.54 |
| 23 | 2020-05-15 | 2941.18 | 11,764.72 |
| 24 | 2020-05-22 | 2941.18 | 14,705.90 |
| 25 | 2020-05-29 | 2941.18 | 17,647.08 |
+----+------------+---------+---------------+
如果给定的运行总计值与表中显示的值完全相同,则很容易。如果给定的运行总数为5882.36,则结果为2020-05-01;如果给定的运行总数为14,75.90,则结果为2020-05-22;等等。
然而,给定的数字和表中存储的数字并不完全相同。例如,
给定运行总数为8600,结果应为2020-05-08;对于14000人来说,结果应该是2020年5月22日。
我试过这个问题
SELECT TOP 1 DATE FROM Table ORDER BY abs([RunningTotal] - '14000')
它几乎可以正常工作,但如果给定的运行总数是14706或15000,结果是2020-05-22,而不是2020-05-29。需要的结果是2020-05-29,因为它在记录id#25的运行总数之内。
1条答案
按热度按时间mdfafbf11#
您可以使用过滤和
order by
: