私は2つのテーブルを持っており、あるテーブルのデータを別のテーブルにマージしようとしています。具体的には、Table_Aは、病院からの患者退院記録の数百万件である。 table_Bは、特定の病院が急性ケア施設として分類されているかどうかを示します。病院が急性ケア施設であるテーブルAからすべての記録を入手したいと思っています。SQL - あるテーブルの一部を別のテーブルに結合する2つのカラムに基づいて結合する
表Aには多くのフィールドがあります。関連性:
HOSPITAL_ID | YEAR_AND_QUARTER | RECORD_ID
レコードIDが一意です。 Hospital_IDと年が一緒に一度だけoccuringで
HOSPITAL_ID | YEAR_ALONE | ACUTE_INDICATOR
1223 | 2004 | X
1223 | 2005 | X
1289 | 2004 |
1289 | 2005 | X
:YEAR_AND_QUARTER Table_Bはいくつかのフィールドを持っている
あたりのレコードの(RECORD_IDさん)HOSTPIAL_IDあたり数百〜数千、およびHOSPITAL_IDsの何百もあります。
表Bでは、各病院IDが複数回出現するため、私はHospital_IDに参加できません。また、table_Bは、すべての四半期データを1年に集計します(2004Q1、2004Q2 .. 2004年のみではなく)。
このように私はしたい最終出力(新しいテーブルとして好ましくは)ちょうどACUTE_INDICATORはAppologies先に、私はSQLの幼児だと何にでもかなり確実ではなかったTable_A
にHOSPITAL_ID | YEAR_AND_QUARTER | ACUTE_INDICATOR | RECORD_ID....
を追加します答えを探す。私の最高の推測では(擬似)となりました:
INNER JOIN (SELECT B.ACUTE_INDICATOR)
ON A.HOSPITAL_ID = B.HOSPITAL_ID
WHERE LEFT(A.YEAR_AND_QUARTER,4) = B.YEAR_ALONE
多くの感謝:)
あなたはこれを試してみましたか? INNER JOIN B A. A.HOSPITAL_ID = B.HOSPITAL_IDとLEFT(A.YEAR_AND_QUARTER、4)= B.YEAR_ALONE – Greenisha
はい - これにより、table_Aよりも多くの行が表示されます(私は仮定しています)。私はあまりにも経験していないので、理由を知りません。 – chris