いつも皆様に助けていただいてます。
過去に色々聞いているものの、なかなか応用が利かず・・・今回もご支援下さい。
SQL2008に、1つのDBを作っていて、その中にテーブルAとテーブルBがあります。
テーブルAには、1つの会員Noにつき3つのSEQ1~3の行があって、それぞれにポイント数が入ってます。
テーブルA
会員No SEQ Point
1001 1 20
1001 2 30
1001 3 50
1002 1 15
1002 2 10
1002 3 0
テーブルBには、1つの会員につき最大10個のSEQが付きますが、今は殆どカラッポです。
テーブルB
会員No SEQ Rank
1001 1 5
1002 1 5
やりたいことは、テーブルAのSEQ1のポイント数が99以外なら、テーブルBに
テーブルAの「会員NO」、SEQ「7」、Rank「1」 の行を挿入したいです。
クエリ実行後のテーブルB
会員No SEQ Rank
1001 1 5
1001 7 1
1002 1 5
1002 7 1
テーブルAのSEQ1のPointが99以外なら、テーブルBに「会員No」とSEQ「7」 とRank「1」を挿入、という概要です。
クエリで可能でしょうか?
先ずは自力である程度やってみるのが筋なんでしょうが、時間が無いので聞いてしまいます。
何卒よろしくお願いします。
No.1
- 回答日時:
要件がいま一つ分らないのですが
・テーブルAのSEQが1でRANKが99以外のものがあった場合INSERTを実行するのか
・テーブルAのSEQが1でRANKが99のものがなかったらINSERTするのか
どちらでしょう。
また、どちらの場合も会員No、SEQでバッティングするケースが考えられますがその場合の仕様はどうなっているのでしょうか。
この回答への補足
分かり難く、すみません。
1つ補足しますと、前提として、テーブルBには、SEQ7の行は存在しません。
その上で、
テーブルAのSEQ = 1 and Point <> 99 であれば、
テーブルBに、同会員Noと、SEQ = 7 、 Rank = 1 を挿入 というイメージです。
No.2ベストアンサー
- 回答日時:
insert into テーブルB(会員NO,SEQ,Rank)
select
a.会員NO,'7','1'
from
テーブルA as a
where
SEQ = '1' and
Point <> '99'
ん?単純に、こういうこと???
ただし、
・一発処理。(定期実行なんぞ考慮してないです。データを用意する目的で、全部データがそろってる状態~で最初に一発だけ流すようなもんです。
・重複なんぞ考慮してない。(だからこその一発処理。ではあるけど。ついでに言うと、テーブルBで会員Noでプライマリとってあったりしたら入らないけどね。うん。(まぁ、クエリ実行後のテーブルBを見た限りは、大丈夫か。うん。
定期処理にしたりするのなら、not existsとかでも使ってやる必要があるかと思います。
まぁ、
select
a.会員NO,'7','1'
from
テーブルA as a
where
SEQ = '1' and
Point <> '99'
とりあえず、コレだけで実行してみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
- Oracle SQL update方法 2 2022/06/22 14:07
- PHP MySql PHP 2つのテーブルをJOINで結合 user_idで抽出 1 2023/01/03 14:04
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- MySQL 【MySQL】本当に困っています。詳しい方、ご教授よろしくお願いします。 1 2023/06/03 14:18
- MySQL 【MySQL】本当に困っているので、助けてください。よろしくお願いします。 3 2023/06/03 14:24
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) Access クエリ 同一テーブル内 複数フィールドの同時集計のやり方について 1 2022/05/18 19:01
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルリンク リンク元を知...
-
外部キーだけのテーブル(主キ...
-
L2SWはARPテーブルを持っている?
-
件数の多い順にselect
-
MySQLで複数テーブルを作成する
-
会社の飲み会の幹事になり、座...
-
面接のときテーブルが正面に。...
-
クエリを教えてください select...
-
一致するデータのみ削除したい
-
オフ会の席替えについて(8人...
-
更新されたテーブルを表示したい
-
複数テーブルにわたるCOUNT
-
【PHP】SQL文のSUM関数で出力し...
-
男性と2人で飲食店に行きテーブ...
-
テーブルデータのエクスポート...
-
リンクしているテーブルの上書き
-
お金持ちのテーブル
-
ACCESS での LEFT JOIN 時の WH...
-
Accessデータベースウインドウ...
-
このテーブルで
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
L2SWはARPテーブルを持っている?
-
テーブルリンク リンク元を知...
-
会社の飲み会の幹事になり、座...
-
外部キーだけのテーブル(主キ...
-
飲み会で、座敷orテーブルどち...
-
アクセスのリンクテーブル一覧...
-
複数テーブルにわたるCOUNT
-
男性と2人で飲食店に行きテーブ...
-
「テーブルに座って……」という...
-
複雑なSQL文について
-
まるいテーブル 円い 丸い 漢字...
-
お金持ちのテーブル
-
【PHP】SQL文のSUM関数で出力し...
-
論理名とコメント構文(?)について
-
1つのテーブルに同じデータを参...
-
1対1のリレーション(主キー同...
-
MySQLで複数テーブルを作成する
-
テーブルの白く剥がれてるところに
-
オーダーの覚え方について
-
このテーブルで
おすすめ情報