J'ai deux tables et je cherche à fusionner des données d'une table dans une autre. Plus précisément, Table_A est des millions de dossiers de patients provenant des hôpitaux; table_B indique si un hôpital particulier est étiqueté comme établissement de soins actifs. Je veux récupérer tous les dossiers du tableau A où l'hôpital est un établissement de soins actifs.SQL - Joindre une partie d'une table dans une autre, basée sur deux colonnes correspondant
Le tableau A comporte plusieurs champs; de pertinence:
HOSPITAL_ID | YEAR_AND_QUARTER | RECORD_ID
Avec l'ID d'enregistrement étant unique. Il y a des centaines de milliers de record de (RECORD_ID de) par HOSTPIAL_ID, et des centaines de HOSPITAL_IDs par YEAR_AND_QUARTER
Table_B a quelques champs:
HOSPITAL_ID | YEAR_ALONE | ACUTE_INDICATOR
1223 | 2004 | X
1223 | 2005 | X
1289 | 2004 |
1289 | 2005 | X
Avec Hospital_ID ET année qu'une seule fois ensemble se produisant.
Je ne peux pas me joindre à Hospital_ID, car dans le Tableau B, chaque ID d'hôpital apparaît plusieurs fois. En outre, table_B regroupe toutes les données trimestrielles en une année (au lieu de 2004T1, 2004T2 .. seulement 2004).
Ainsi la sortie finale (de préférence sous forme d'une nouvelle table) Je veux juste ACUTE_INDICATOR est ajouté à TABLE_A
HOSPITAL_ID | YEAR_AND_QUARTER | ACUTE_INDICATOR | RECORD_ID....
appologies avant, je suis un enfant en bas âge SQL et était même pas tout à fait sûr de ce que chercher une réponse Mes meilleures estimations étaient (pseudo):
INNER JOIN (SELECT B.ACUTE_INDICATOR)
ON A.HOSPITAL_ID = B.HOSPITAL_ID
WHERE LEFT(A.YEAR_AND_QUARTER,4) = B.YEAR_ALONE
Un grand merci :)
avez-vous essayé? INNER JOIN B SUR A.HOSPITAL_ID = B.HOSPITAL_ID ET GAUCHE (A.YEAR_AND_QUARTER, 4) = B.YEAR_ALONE – Greenisha
Oui - cela me donne plus de lignes que dans table_A (doublons je suppose). Je suis trop inexpérimenté pour avoir une idée de pourquoi. – chris