Sql 从其他行获取值

Sql 从其他行获取值,sql,Sql,我们的用户每月、每季度和每年都要付费。我有一张表格,上面列出了他们下一个结账日期和金额。如果我们希望提前一个月以上查看,这会产生一个小问题,因为日期只能看到月度发票金额,并且不会出现在2个月或更长时间的视图中 当前表格: +------------+---------------+-----------------+ | Date | Total Billing | Monthly Portion | +------------+---------------+-----------

我们的用户每月、每季度和每年都要付费。我有一张表格,上面列出了他们下一个结账日期和金额。如果我们希望提前一个月以上查看,这会产生一个小问题,因为日期只能看到月度发票金额,并且不会出现在2个月或更长时间的视图中

当前表格:

+------------+---------------+-----------------+
| Date       | Total Billing | Monthly Portion |
+------------+---------------+-----------------+
| 11/03/2021 | 10000.00      | 140.00          |
+------------+---------------+-----------------+
| 12/03/2021 | 10350.00      | 610.00          |
+------------+---------------+-----------------+
| ...        | ...           | ...             |
+------------+---------------+-----------------+
| 11/04/2021 | 12080.00      | 0               |
+------------+---------------+-----------------+
| 12/04/2021 | 15020.00      | 0               |
+------------+---------------+-----------------+
我想要实现的目标:

+------------+---------------+-----------------+----------------------------------------------+
| Date       | Total Billing | Monthly Portion | Transfer Monthly Portion from Previous Month |
+------------+---------------+-----------------+----------------------------------------------+
| 11/03/2021 | 10000.00      | 140.00          | 0                                            |
+------------+---------------+-----------------+----------------------------------------------+
| 12/03/2021 | 10350.00      | 610.00          | 0                                            |
+------------+---------------+-----------------+----------------------------------------------+
| ...        | ...           | ...             | ...                                          |
+------------+---------------+-----------------+----------------------------------------------+
| 11/04/2021 | 12080.00      | 0               | 140.00                                       |
+------------+---------------+-----------------+----------------------------------------------+
| 12/04/2021 | 15020.00      | 0               | 610.00                                       |
+------------+---------------+-----------------+----------------------------------------------+

基本上是1个月后在“每月部分”单元格上进行复制。

您可以使用滞后分区按天(日期)查找当天的上一张账单

select date,  totalbilling,  monthlyporrtion, lag(monthlyportiin) over (patition by day(date) order by date) traansfermonthlyportion
from currenttable

您是否在每月29、30或31日生成账单?这些可能会导致上个月的天数不匹配。

用您正在使用的数据库标记您的问题。您的问题和示例数据不同步,因为问题引用的是未来一个月以上的数据。@GordonLinoff示例数据只是表格外观的演示。我想这应该很清楚
每月部分
放入列
每月转移
但向前移动1个月。在此示例数据中,了解不同月份是否为同一票据的唯一方法是“总票据”列。不应该这样。请提及列名以唯一地标识任何账单。@KaziMohammadAliNur这不是
日期列的用途吗?
一个日期中可以有两张或更多账单,对吗?那你怎么知道你之前需要显示的金额呢。是否有任何“账单编号”或“参考编号”类型栏?这些账单已经生成,我们知道在3月15日我们将账单X金额。但是,是的,我们遇到了在3月31日有账单的问题,但没有4月31日(在这种情况下,它需要分配到4月30日),但在明年3月,您将有29、30和31的问题。你打算如何解决这个问题。如果可能的话,你应该试着只在任何月份的1号到28号生成账单。