J'essaie de faire des jointures compliquées dans la vue sql en accès et il est vraiment difficile de savoir pourquoi je reçois des erreurs. Je suis plus compétent dans l'utilisation des jointures SQL dans SQL lui-même et la vue SQL de l'accès est vraiment confuse lorsque je donne des erreurs. Je n'ai aucune idée de ce que je dois faire pour corriger cette erreur. S'il vous plaît voir ci-dessous.Erreur de syntaxe sur l'opération de jointure - vue sql dans l'accès 2013
SELECT Table1.PAT_NAME AS PATNM,
Table1.PAT_MRN_ID AS MRN,
Table2.Start_Date AS StartDT,
Table2.END_date AS ENDDT,
Table2.episode_ID AS EPSDID,
Table2.POS_NAME AS POS,
Table3.READMITDT AS READMITD
FROM Table2
LEFT JOIN (Table1 ON Table2.PAT_MRN_ID = Table1.PAT_MRN_ID)
JOIN (Table3 ON Table1.PAT_ID = Table3.PATIDR AND
(Table3.READMITDT <= dateadd("d", 1, isnull(Table2.END_DATE,NOW())
OR Table3.READMITDT < dateadd("d", 30, Table2.START_DATE))
AND Table3.READMITDT >= Table2.start_date))
Merci, j'ai fait les changements, mais maintenant il me dit que j'ai un opérateur manquant et donne l'instruction entière, donc difficile de dire où se trouve l'opérateur manquant. –
il est préférable d'utiliser la clause WHERE après l'opération de jointure. retirer 'et' REJOIGNEZ ON Table3 (Table1.PAT_ID = Table3.PATIDR) ET (Table3.READMITDT <= dateadd ("d", 1, isnull (Table2.END_DATE, NOW()) OU Table3.READMITDT < dateadd ("d", 30, Table2.START_DATE) ET Table3.READMITDT> = Table2.start_date)) devrait être REJOIGNEZ ON Table3 (Table1.PAT_ID = Table3.PATIDR) ** OÙ ** (Table3.READMITDT <= dateadd ("d", 1, isnull (Table2.END_DATE, MAINTENANT()) OU Table3.READMITDT = Table2.start_date)) –