UPDATE文の書き方を教えて下さい。
いつもお世話になっています。
UPDATEの書き方について教えて下さい。
以下のようなUPDATE文を作成しました。
処理的には必要な結果を返してくれていますが、もう少しシンプルには
ならないでしょうか?
UPDATE文がまだ理解出来ていないのですが、”WHERE EXISTS(”以降に
書いているSELECT文は、SET文の値算出時にも同じSELECT文を書いて
いるのですが、それを代用することは出来ないのでしょうか?
(SELECTの結果をWHERE文の中で簡単に呼び出して使えないのでしょうか?)
※うまく内容が伝わってないかもしれませんが、どうぞよろしくお願いします。
<<<更新処理>>>
UPDATE TBL01 SET(
TBL01_MARNO,
TBL01_UPDYMD
)=(
SELECT
TBL02_MARNO,
TO_NUMBER(TO_CHAR(SYSDATE,'YYYYMMDD'))
FROM
(SELECT
TBL02_TENCD,
TBL02_REN,
TBL02_MARNO,
TBL02_UPDKBN,
RANK ()
OVER (PARTITION BY TBL02_TENCD,
TBL02_REN
ORDER BY TBL02_YMD DESC,
TBL02_DAT DESC
) WRK_RANK
FROM TBL02
WHERE TBL02_OKFLG = 1
)
WHERE TBL02_TENCD = TBL01_TENCD
AND TBL02_REN = TBL01_REN
AND WRK_RANK = 1
AND TBL02_UPDKBN = 2
)
WHERE EXISTS(
SELECT 'TRUE'
FROM
(SELECT
TBL02_TENCD,
TBL02_REN,
TBL02_MARNO,
TBL02_UPDKBN,
RANK ()
OVER (PARTITION BY TBL02_TENCD,
TBL02_REN
ORDER BY TBL02_YMD DESC,
TBL02_DAT DESC
) WRK_RANK
FROM TBL02
WHERE TBL02_OKFLG = 1
)
WHERE TBL02_TENCD = TBL01_TENCD
AND TBL02_REN = TBL01_REN
AND TBL02_UPDKBN = 2
AND WRK_RANK = 1
);
お礼
回答ありがとうございます、説明不足で本当に申し訳ありません、URLの続きで合っています。 Excelのみで完結することでもADOを使えることを知りませんでした。 教えて頂いたコードでデータは抽出することができました ありがとうございます。 このままでもそこまで支障はないのですが selectには検索対象のフィールドも入れないとエラーが発生するので、そのフィールドを入れたのですが これですと、抽出に検索対象のフィールドもでてきますが、でてこないようにはなりませんか? 上でいうと、年齢で検索し、年齢を除いたID名前住所を抽出するイメージです。