を更新し、私は、以下に示す2つのテーブルがあります。SQL、最新のデータ情報
Table 1 Student ID - DATE_NO - SCORE
Table 2 STUDENT_ID - DATE_NO - HT - WT
表1、表2に示しながら、物理的なテストの得点と各学生のための試験の日付を持っていますその身長(HT)と体重(WT)と測定された日付。
例データ:
Table 1 Student ID | DATE_NO | SCORE | 125 | 3 | 90 | 572 | 6 | 75 | 687 | 11 | 95 |
Table 2 Student_ID | DATE_NO | HT | WT | 125 | 2 | 70 | 150 | 125 | 3 | 72 | 155 | 125 | 6 | 72 | 160 | 572 | 2 | 70 | 200 | 572 | 5 | 70 | 225 | 572 | 8 | 70 | 215 | 572 | 9 | 70 | 220 | 687 | 4 | 65 | 140 | 687 | 7 | 67 | 150 | 687 | 11 | 70 | 155 | 687 | 12 | 67 | 160 |
Iは、HT/WTとテストスコアの日付の両方でまったく同じDATE_NOを持つことが保証されておりません。私は彼らの身体検査を受けた時、各学生の最新のHTとWTが欲しいです。上記の例のデータに基づいて、最適には参加してくれ、以下の表を与えるだろう:
Modified Table 1 Student ID | DATE_NO | HT | WT | 125 | 3 | 72 | 155 | 572 | 6 | 70 | 225 | 687 | 11 | 70 | 155 |
私はHT int型とWT int型では、表1を変更した後ので、表1にUPDATEステートメントを使用したいのですが、I次の操作を実行してください:
UPDATE T1
SET HT = T2.HT, WT = T2.WT
FROM Table_1 as T1
INNER JOIN Table_2 AS T2 ON T1.STUDENT_ID = T2.STUDENT_ID
WHERE (T1.DATE_NO) >= (T2.DATE_NO)
しかし、結果は私に基準を満たす最初のレコードを与えます。 [> =〜< =]に切り替わります。各学生のHT/WTに、月3,8、および11になるはずの月6,8、および12のエントリを作成します。
FYI:金曜日までに解決策を適用することはできません。
??????構文はdbmsごとに異なります。 SQLは単なる言語にすぎません。 – Eric
SQL Server 2014 Management Studio。私の悪い。 – Brian
あなたは不明な質問をしました。 –