【发布时间】:2021-06-25 22:12:24
【问题描述】:
晚上好,如果可能的话,希望有一些关于 SQL Server 查询的指针。
我在一个数据库中有两张表,示例如下:
PostedTran
PostedTranID AccountID PeriodID Value TransactionDate
1 100 120 100 2019-01-01
2 100 120 200 2020-01-01
3 100 130 300 2021-01-01
4 101 120 400 2020-01-01
5 101 130 500 2021-01-01
PeriodValue
PeriodValueID AccountID PeriodID ActualValue
10 100 120 500
11 101 120 600
我的两张表不匹配,我的尝试失败得很惨。从 PostedTran 表中,我尝试选择 2021-01-01 之前的所有交易行,然后从结果中对每个 AccountID 的值求和。然后我需要将该值添加到 PeriodValue 表中现有的 ActualValue 中。
因此,在上面的示例中,PeriodValueID 10 上的 ActualValue 将更新为 800,而 11 将更新为 1000。此示例中的 PeriodID 是恒定的,并且始终为 120。
提前感谢您的帮助。
【问题讨论】:
-
你的关系型数据库是什么?
-
嗯,我觉得很可疑...
PeriodValue.ActualValue不是要保存PostedTran.Value的总和吗?如果是这样删除列PeriodValue.ActualValue或实际上是整个表PeriodValue。他们所做的只是存储冗余数据,这是一件坏事,因为它可能导致不一致。如果需要,请查询总和。为方便起见,您可以创建一个执行此操作的视图。