这对于有 SQL 经验的人来说是一个挑战(在这种情况下是 MS-Access)
我有 2 张桌子:holdings
和valuations
.
holdings
包含特定账户在给定日期持有的所有资产及其各自的价值。这些是字段:
id
{primary key/auto-inc}, accountid
{int}, holdingdate
{date}, holdingid
{int}, holdingvalue
{double}
valuations
包含特定账户在给定日期持有的总和。这些是字段:
id
{主键/auto-inc}、accountid
{int}、valuationdate
{date}、valuation
{double}。
2012 年 1 月后,对于表中的每一个,我valuation
在valuations
表中都有相应的持股集合,holdings
其总和 = 估值。
在此日期之前,我只有估值,没有持股。
例如,在valuations
我会有这样的记录:
id | accountid | valuationdate | valuation
------------------------------------------------
56 | 12345 | 2013-03-31 | 2000000
valuation
相应地,我将拥有这些资产(在此日期为该帐户加起来:
id | accountid | holdingdate | holdingid | holdingvalue
---------------------------------------------------------------
250 | 12345 | 2013-03-31 | 16 | 1000000
251 | 12345 | 2013-03-31 | 38 | 500000
252 | 12345 | 2013-03-31 | 27 | 500000
如上所述,有些情况我只有valuations
表中的记录,没有对应的持有量。
为了简化/优化我的数据库结构,我想消除该表,因为它本质上是通过简单地对给定日期的帐户的资产求和valuations
来复制应该存在于表中的信息。holdings
为了获得客户未来的估值,我可以简单地将他们在给定日期的持有量相加,valuations
完全不需要表格。
我的目标是用不存在日期holdings
的数据填充表格。valuations
本质上,如果某个帐号/估值日期组合不存在任何持股,则在该帐号/估值日期holdingid = 999
的持股表中插入一个虚拟持股 ( ) 等于该日期的估值。
是否可以构造一个 SQL 查询来实现上述目的?