を働いていない、MS SQLに参加します宣言(実際には8時間以内)。ここに私が思い付いたものです:私はCL.ContactDateのために戻って非マッチングの日付を取得し、それはそれだけでその患者IDのためにCLのすべての行を返すということは明らかだからネストされた。これは、テーブル構造(関連ビット)である
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
ただし、参加することは、適切に機能していません。私は思う...私は本当に間違っているのか分からない。ダミアンへ
。 –
'PL 'はどこから来たのですか?それは 'CL'であるべきですか?また、宣言の後に8時間*以内に来る連絡先だけが必要ですか? 'DATEDIFF'は、最初の日付が2番目の日付よりも大きく、すべての負の値が<8であれば、完全に負の値を返すことができます。 –
Tim:モデル内の右下に宣言があり、その関係はClientIDです。 Damien:PL = PC、typo(これはセキュリティ上の理由から実際のクエリではありません) –