これはテーブル構造(関連するビット)です:
clientIDの宣言と宣言の日付(実際には8時間以内)に一致するcontactLogエントリを見つけようとしています。これが私が思いついたものです:
SELECT
D.ClientID
D.DeclarationID
CL.ContactDescription,
CL.ContactDate,
FROM Declarations D
INNER JOIN (Contacts C
INNER JOIN (PartialContacts PC
INNER JOIN ContactLogs CL
ON PC.ContactPartID = CL.ContactPartID )
on PC.ContactID = C.ContactID
)
ON C.ClientID = D.ClientID AND DATEDIFF(hour, D.DeclarationDate, CL.ContactDate) < 8
ただし、CL.ContactDateに対して一致しない日付が返され、その患者IDのCLのすべての行が返されるだけであることが明らかなため、結合は正しく機能していません。私は思う...何が悪いのかよくわからない。