【发布时间】:2011-09-24 15:09:55
【问题描述】:
我有两张表,我希望将一张表中的数据合并到另一张表中。具体来说,Table_A 是数百万条来自医院的患者出院记录; table_B 说明特定医院是否被标记为 Acute Care Facility。我想从表 A 中获取所有记录,其中 Hospital 是 Acute Care Facility。
表A有很多字段;相关性:
HOSPITAL_ID | YEAR_AND_QUARTER | RECORD_ID
记录 ID 是唯一的。每个 HOSTPIAL_ID 有数百到数千条记录 (RECORD_ID),每个 YEAR_AND_QUARTER 有数百个 HOSPITAL_ID
Table_B 有几个字段:
HOSPITAL_ID | YEAR_ALONE | ACUTE_INDICATOR
1223 | 2004 | X
1223 | 2005 | X
1289 | 2004 |
1289 | 2005 | X
Hospital_ID AND Year 同时出现一次。
我无法加入 Hospital_ID,因为在表 B 中,每个医院 ID 出现不止一次。此外,table_B 将所有季度数据集中为一年(而不是 2004Q1、2004Q2.. 仅 2004 年)。
因此我想要的最终输出(最好作为新表)只是将 ACUTE_INDICATOR 添加到 Table_A 中
HOSPITAL_ID | YEAR_AND_QUARTER | ACUTE_INDICATOR | RECORD_ID....
提前请教,我是一个 SQL 婴儿,甚至不太确定要搜索什么答案。我最好的猜测是(伪):
INNER JOIN (SELECT B.ACUTE_INDICATOR)
ON A.HOSPITAL_ID = B.HOSPITAL_ID
WHERE LEFT(A.YEAR_AND_QUARTER,4) = B.YEAR_ALONE
非常感谢:)
【问题讨论】:
-
你试过了吗? A.HOSPITAL_ID = B.HOSPITAL_ID AND LEFT(A.YEAR_AND_QUARTER,4) = B.YEAR_ALONE 上的内部连接 B
-
是的 - 这给了我比 table_A 更多的行(我假设是重复的)。我太缺乏经验了,不知道为什么。
标签: sql sql-server-2008