【发布时间】:2014-08-13 23:02:05
【问题描述】:
起初,我的问题可能看起来很简单,并且以前有人问过。请耐心等待 - 我认为这是一个独特的问题。
表 A 具有列 State、County、Month、Year 和 Rate。每个州、县的组合都以不同的日期和比率多次列出。有些行设置了州和县,而该行中的其他所有内容都为 NULL。
表 B 有每个月和每个年的违约率。列是Month、Year 和Rate。在这张表中,我有几年的默认数据。
因此,对于表 A 中的每个州、县组合,我想用表 B 中的数据填充任何缺失的数据。
我创建了一个表 C,它看起来就像表 A,除了所有数据都用表 B 中的默认数据填充。然后我尝试将表 A 和表 C 合并在一起。但我最终遇到了两个问题。
首先,我得到了重复的行,除了费率外,其他所有内容都相同。在这种情况下,我只想保留最初在表 A 中的行(不是“默认率”)。
其次,我将得到设置了州和县但其他所有内容为 NULL 的行。对于每个默认率,我都需要将这些行替换为行。
所以最后我希望每个州、县、月、年复合材料都有一行。
是否可以像我描述的那样组合表格。
如果您需要任何澄清,请告诉我。谢谢。
表 A 有几千行。每个州、县组合 1 到 48 行:
+-------+--------+--------+------+------+ |状态 |县 |月 |年份 |率 | +-------+--------+--------+------+------+ |纽约 |奥尔巴尼 | 1 | 2011 | ### | |纽约 |奥尔巴尼 | 2 | 2011 | ### | ... |纽约 |奥尔巴尼 | 12 | 2011 | ### | |纽约 |奥尔巴尼 | 1 | 2012 | ### | ... |纽约 |奥尔巴尼 | 12 | 2012 | ### | |纽约 |梦露 | 1 | 2011 | ### | ... |纽约 |梦露 | 12 | 2011 | ### | |纽约 |埃塞克斯 |空 |空 |空 | +-------+--------+--------+------+------+表 B 有 36 行。 3 年内每个月一行:
+--------+------+------+ |月 |年份 |率 | +--------+------+------+ | 1 | 2011 | *** | | 2 | 2011 | *** | | ... | | | | 12 | 2011 | *** | | 1 | 2012 | *** | | ... | | | | 12 | 2012 | *** | | 1 | 2013 | *** | | ... | | | | 12 | 2013 | *** | +--------+------+------+结果表的行数比表 A 多。每个州、县组合至少有默认表中的 36 行:
+-------+--------+--------+------+------+ |状态 |县 |月 |年份 |率 | +-------+--------+--------+------+------+ |纽约 |奥尔巴尼 | 1 | 2011 | ### | | ... | | | | | |纽约 |奥尔巴尼 | 12 | 2011 | ### | |纽约 |奥尔巴尼 | 1 | 2012 | ### | | ... | | | | | |纽约 |奥尔巴尼 | 12 | 2012 | ### | |纽约 |奥尔巴尼 | 1 | 2013 | *** | | ... | | | | | |纽约 |奥尔巴尼 | 12 | 2013 | *** | |纽约 |梦露 | 1 | 2011 | ### | | ... | | | | | |纽约 |梦露 | 12 | 2011 | ### | |纽约 |梦露 | 1 | 2012 | *** | | ... | | | | | |纽约 |梦露 | 12 | 2012 | *** | |纽约 |梦露 | 1 | 2013 | *** | | ... | | | | | |纽约 |梦露 | 12 | 2013 | *** | |纽约 |埃塞克斯 | 1 | 2011 | *** | | ... | | | | | |纽约 |埃塞克斯 | 12 | 2011 | *** | |纽约 |埃塞克斯 | 1 | 2012 | *** | | ... | | | | | |纽约 |埃塞克斯 | 12 | 2012 | *** | |纽约 |埃塞克斯 | 1 | 2013 | *** | | ... | | | | | |纽约 |埃塞克斯 | 12 | 2013 | *** | +-------+--------+--------+------+------+键:*** 是默认表中的比率。 ### 是另一个表中的费率
【问题讨论】:
-
您能展示一些您尝试过的示例数据和查询吗?有点难以想象你在看什么。
-
我已经添加了示例表。