この質問は、私の以前の質問に関連しています。
次の2つのテーブルがあります。
私はすでに、最新の日付のみが見つかった Table1 の ID を更新するこのクエリを持っています。ただし、日付に基づいて、Table1 の適切な ID を Table2 の適切な ID と照合することは可能ですか。
以下の私のクエリを参照してください。
Update Dairy
SET DY_H_ID = (
SELECT MAX(ID)
FROM History
WHERE H_DateTime <= DY_Date
AND H_IDX = DY_IDX
AND H_HA_ID = 7
AND H_HSA_ID = 19
AND H_Description LIKE 'Diary item added for :%'
)
WHERE DY_H_ID IS NULL
AND DY_IDX IS NOT NULL
AND DY_Date = (SELECT MAX(DY_Date) FROM Dairy)
残りを一致させるためにこのようなことをしたいのですが、これはうまくいきません:
AND SUBSTRING(CAST(DY_Date AS varchar(11)), 1, 10) = (SELECT SUBSTRING(CAST(H_DateTime AS varchar(11)), 1, 10) FROM History)
たとえば、表 1 の ID 10029 は、履歴から ID 3205 を取得する必要があります。ID 10030 は 3206 の ID を取得する必要があり、ID 10031 は ID 3207 を取得する必要があり、ID 10032 は 3208 などを取得する必要があります。
両方のテーブルの値が変更されることに注意してください。