私はしばらくこのことを理解しようとしていましたが、何も私にとってうまくいかないようです。私は複数のテーブルに参加していますが、ID番号に関連付けられている最大の日付のみが必要です。 ID番号には複数の日付が関連付けられている可能性があります。 MAX(Date)ピースを取り出すと、実行されますが複数の日付値が返されます。私は、MAX(日付)が最初の選択にあるのではなく、WHERE句内にあるだけです。ここに私のクエリです:あなたはFULL OUTER JOIN
を使用してなぜSQL - date = max date
SELECT A.ID, MAX(C.Date)
FROM IDTable A INNER JOIN
AccountTable B
ON B.AccountID = A.AccountID FULL OUTER JOIN
Updates U
ON U.ID = A.ID FULL OUTER JOIN
Update2 C
ON C.AccountID = B.AccountID INNER JOIN
UserTable UT
ON UT.UserMnemonicID = A.AssignedTo
WHERE A.StatusID NOT IN ('Complete', 'Open')
GROUP BY A.ID;
私はあなたがINNER JOIN
とそれらを混合されるだろう、なぜそれほど、見当がつかない:
SELECT DISTINCT A.ID , C.Date
FROM IDTable A
INNER JOIN AccountTable B
ON B.AccountID = A.AccountID
FULL OUTER JOIN Updates U
ON U.ID = A.ID
FULL OUTER JOIN Update2 C
ON C.AccountID = B.AccountID
INNER JOIN UserTable UT
ON UT.UserMnemonicID = A.AssignedTo
WHERE A.StatusID NOT IN ('Complete','Open')
--Need help here to only return MAX date value:
AND C.Date=(SELECT MAX(C.Date) FROM Update2)
ORDER BY A.ID
どのようなタイプの 'SQL'エンジンを使用していますか? – William