EntryNavi : « 赤と白のツブツブ~♪ | メイン | 途中のケーキ »

CategoryNavi : メイン -> コンピューター

同じテーブル内でのコピー

同じテーブル内であるフィールドのデータをキーにまとめたデータを別のデータをキーにして
集めた情報へコピーしたいときってありますよね?
アクセスだとこんな感じで簡単にできてしまうんですが、


伝わりますか?
具体的なテーブルの中身を書いて説明すると、東京の休日フラグを大阪にもコピーしたいということです。

事業所日付休日フラグ
東京2005/4/1出勤
東京2005/4/2出勤
東京2005/4/3休日
大阪2005/4/1未定
大阪2005/4/2未定
大阪2005/4/3未定


Oracleで使用できるSQLだと下のような感じ。他のDBで使用できるかは不明。
クエリーの呼び方も調べた時には見たのですが忘れたのでとりあえずパス。_| ̄|○

update カレンダー コピー先
set コピー先.休日フラグ = (select 休日フラグ from カレンダー where 事業所 = '東京' and 日付 = コピー先.日付 )
where コピー先.事業所 = '大阪' and コピー先.日付 Between '2005/04/01' And '2005/04/30'


とりあえず、似た状況に陥った時は↑のサンプルを元に考えてみることにします。自分は。

<Category : コンピューター>

コメント (2)

Q:

DB2でも多分動くかなぁ。
エイリアスのスコープが微妙かもしれんけど。

ボクの場合、普段はINSERTとサブクエリを組み合わせる方が多いかなぁ・・・コスト削減には必要な構文ですか。

あやね:

なるほど。
今回のはたまにしか実行しないので良いですが。頻繁に実行してデータ量が多い場合とかは、ワークを作ったりしてワンクッションおいたりが必要でしょうね。

エイリアスと言えば、普通?「as」を使うと思うのですが、Oracleでは使えないっぽいんですよね。他のサイトさんとかは見ても大丈夫っぽいこと書いてあるのですが・・・。バージョンの差かなとか。

コメントを投稿

検索

Google

サイドフィード

track feed 理ろぐ
人気ブログランキング - 理ろぐ
Powered by
Movable Type 3.34