field_ind
の値をYに更新するために、selectステートメントを更新ステートメントに変換するときに助けが必要です。table_1
の主キーはfield_id,create_date
です。ここで私は更新する必要があるレコードを見つけるために使用されるSELECT文は次のとおりです。更新のステートメントを作成するヘルプ(保留中)
SELECT cd.field_id, cd.create_date, cd.field_ind FROM table_1 cd
JOIN table_2 ct
ON cd.field_id = ct.field_id
AND cd.field_ind = 'N'
JOIN table_3 c
ON c.field_id = cd.field_id
AND c.field_rpt = 'N'
WHERE cd.create_date IN (SELECT MAX(create_date)
FROM table_1
WHERE field_id = ct.field_id);
サンプルデータ:
FIELD_ID CREATE_DATE FIELD_IND
123 1/1/2016 N
123 2/1/2017 N
456 1/1/2016 N
456 3/1/2017 N
789 1/1/2015 N
789 1/31/2017 N
期待される結果:
FIELD_ID CREATE_DATE FIELD_IND
123 1/1/2016 N
123 2/1/2017 Y
456 1/1/2016 N
456 3/1/2017 Y
789 1/1/2015 N
789 1/31/2017 Y
すべてのヘルプ高く評価しました。ありがとう。
どこに更新しますか?サンプルデータと期待される結果は、あなたが意味するものを明確にするのに役立ちます。 –
table_1のfield_indを更新します。 – user3224907
しかし何に?クエリはその列を取得します。既に値を更新したいのですか?または、IDのすべての行を更新して、そのIDの最新の作成日の行の値と同じ値にしたいとしますか? –