VBでSQL文を使ってテーブルのデータを書き換える方法
- VBを使用して、上記のデータをSQLのINSERT文を使って指定のテーブルに書き換える方法を説明します。
- 仕入先の区分に応じて、金額を対応する列に振り分ける処理を行います。
- この処理を行う際には、ACCESSデータベースを使用します。
- ベストアンサー
VBでSQL文を使って
テーブル 仕入先 区分 金額 001 1 800 002 1 1000 002 3 1200 003 1 700 003 2 900 上記の様なデータがあったとして、このデータをSQLのINSERT文で下記のようなテーブルに書き換えたいのですが (区分1の時は金額1へ、区分2の時は金額2へ、区分3の時は金額3へ) 仕入先 金額1 金額2 金額3 001 800 0 0 002 1000 0 1200 003 700 900 0 ちなみにDBはACCESSです 回答よろしくお願いします。
- Geek
- お礼率32% (9/28)
- Visual Basic
- 回答数5
- ありがとう数3
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
仕入先 金額1 金額2 金額3 をフィールドにもつテーブルはあるんでしょうか? もしないんでしたらCreatTableで先に作らないといけませんね。 そのテーブル名がTABLE2とします。 INSERT INTO TABLE2 (金額1,金額2,金額3) VALUES (800,0,0) WHERE 仕入先='001' これで001の行に関しては挿入ができます。 それぞれの金額と仕入先Noについては動的にとるために 変数を使えばいいと思います。
その他の回答 (4)
- tsukasa-12r
- ベストアンサー率65% (358/549)
ちょっと訂正です。 誤:INSERT INTO T_DST ↓ 正:INSERT INTO T_DST ( 仕入先, 金額1, 金額2, 金額3 )
- tsukasa-12r
- ベストアンサー率65% (358/549)
IIF とか SWITCH といった関数は使用できないようなので、かなり無理やりですが、 INSERT INTO T_DST SELECT 仕入先, SUM(金額1), SUM(金額2), SUM(金額3) FROM ( SELECT 仕入先, 金額 AS 金額1, 0 AS 金額2, 0 AS 金額3 FROM T_SRC WHERE 区分=1 UNION ALL SELECT 仕入先, 0 AS 金額1, 金額 AS 金額2, 0 AS 金額3 FROM T_SRC WHERE 区分=2 UNION ALL SELECT 仕入先, 0 AS 金額1, 0 AS 金額2, 金額 AS 金額3 FROM T_SRC WHERE 区分=3 ) S GROUP BY 仕入先
- siteuma
- ベストアンサー率28% (77/271)
#1です。訂正します。 >VB-SQLの接続 ⇒VBとDBの接続
- siteuma
- ベストアンサー率28% (77/271)
SQLの質問でしょうか? それともVB-SQLの接続に関しての質問でしょうか? (もしかして両方?)
関連するQ&A
- SQL文について
開発言語:VB2010 DB:SqlServer2005 及び ACCESS2007 SQLサーバーのテーブルをAccessのテーブルへINSERTしたいのですが、 一文で行う事は可能でしょうか? (テーブルの構造は全く同じです) 同じDB内であれば、下記のような感じで出来ると思うんですが。 +----------------------------------+ INSERT into Atest_ACCESS SELECT * FROM Btest_SQL Where OperationDate => 2011/09/05 +----------------------------------+ 出来るのあればどのようにすれば良いのが教えて頂けると幸いです。 よろしくお願い致します。
- ベストアンサー
- Visual Basic
- AccessのテーブルをSQL文にしたい
urizakaです。 さて、今回質問したいのは、Accessで作ったテーブルをSQL文にする方法です。 具体的には、ACCESSで作ったテーブルを、 CREATE TABLE ××× ( ) INSERT… というSQL文にしたいのですが、これはどうすれば良いのでしょうか? すみませんが、教えてください。
- ベストアンサー
- オフィス系ソフト
- SQL文で
SQL2000serverで 異なる2つのデーターベースの中にある 別のテーブルの情報を SQL文を使って、抽出する事は出来るのでしょうか? たとえば下記のように「DB-A」「DB-B」と言った 二つのDBの中のそれぞれのテーブルのIDフィールドで リレーションを取ってDB-AのTablA1のFldAの 値(AA)からDB-BのTablB1のFldBの値(あ)を 抽出することはSQL文で可能なのでしょうか? DB-A DB-B TablA1 TableB1 ID FldA ID FldB 1 AA 1 あ 2 BB 2 い 3 CC 3 う 4 DD 4 え
- ベストアンサー
- SQL Server
- SQL文を教えてください
SQL文を教えてください。 以下のテーブルがあります。 T入金 [ID] [名前] [金額] [入金日] 1, 山田, 25000, 2009/01/01 2, 佐藤, 5000, 2009/02/01 3, 山田, 30000, 2009/01/02 4, 佐藤, 45000, 2009/02/02 5, 佐藤, 10000, 2009/02/03 同じ人物で、入金額50000円に至ったときの入金日を 抽出したいと思っています。 上記データだと、 山田さんは入金日2009/01/02、 佐藤さんは入金日2009/02/02、 ということになります。 これを一つのSQL文で抽出できますでしょうか。 ご教授宜しくお願いいたします。 (Access2000のクエリで抽出しようとしていますが、Accessで無理ならSQL Server、MySQL、PostgreSQLでも可です)
- 締切済み
- その他(データベース)
- VB SQL文について
VB6.0(SP5) XP SQL Sever7.0を使用しています。 テーブルからSQLより以下の条件で抽出しようとしています がいいSQL文が浮かびません。 TableA ----------------------- | sDate | nNumber | ----------------------- | 20030301 | 200 | | 20030301 | 250 | | 20030302 | 220 | | 20030302 | 225 | | 20030303 | 230 | ----------------------- 上記の内容で、一度読み込んで、内部テーブルに格納 したとします。TableAにデータ6、7が追加後に再度、 TableAを読んだときにデータ6、7だけ抽出したいのです が、いい方法ありますか? TableA ----------------------- | sDate | nNumber | ----------------------- | 20030301 | 200 | 1 | 20030301 | 250 | 2 | 20030302 | 220 | 3 | 20030302 | 225 | 4 | 20030303 | 230 | 5 | 20030303 | 240 | 6 ← 抽出したいデータ | 20030304 | 100 | 7 ← 抽出したいデータ ----------------------- ルール sDate :重複することあるが昇順になっている。 nNumber:sDateをキーにすると重複しない。 sDate+nNumberでみると昇順になっている。 よろしくお願いします。
- ベストアンサー
- Visual Basic
- mdbからのデータ取得をSQLで行いたいのですが・・・
VB.NETで開発中です。 “TEST”という名称のmdb(MS-Access)のDBに接続し、“区分マスタ”というテーブルからデータを取得したいのですが、これをSQL文で行いたいと思っています。 サンプル的なコードを記述して教えていただけると助かります。 よろしくお願い致します。
- 締切済み
- Visual Basic
- SQL文は、そもそもどこに書けばいいのでしょうか?
SQL文は、そもそもどこに書けばいいのでしょうか? DBを初めて扱う超初心者です。 いろいろネットで調べてみたのですが、 よく分からず。。 とある理由から、 すでにDBを利用して構築されたサイトの(ごく小さい規模のものです) SQL文を数行書き換えなければならなくなりました。 使用しているDBは、SQLiteというものらしいです。 htmlやcss、phpやjsなどはエディタに記述するように SQL文というものは、どこ(=何に)に書けばいいのでしょうか? コマンドプロンプト?? なお書きたいのは上書き文で kiji_tというテーブルの 識別子k_data4のなかに "vuitton"または"coach"という 文字が入っていた場合 識別子k_data6に1を入れる という作業です。 以下のように書いてみました。 --------------------------------------- UPDATE kiji_t SET k_data6='1' WHERE k_data4 LIKE '%vuitton%' or k_data4 LIKE '%coach%'; --------------------------------------- 質問をまとめます。 1.SQL文はどこに書けばいいのでしょうか?(コマンドプロンプト??) 2.作業中に、DBのテーブルを、エクセルの用に可視化することはできないのでしょうか? 初心者過ぎる質問で恐縮ですが。。 ご存知の方いらしゃいましたら なにとぞご教授よろしくお願いいたします。
- ベストアンサー
- MySQL
- SQL文を教えて下さい
2つのテーブルを比較して、片方のテーブルにしかない データを検索したいのですが、どのようなSQL文に なるのか 教えて下さい。 下記の例だと、AテーブルとBテーブルの両方にあるデータ以外のデータを検索したいので、下記の結果になります。よろしくお願いします 期待される結果 003 さああ 004 いいい 005 ううう 例 Aテーブル 001 あいう 002 えおお 003 さああ 004 いいい 005 ううう Bテーブル 001 あいう 002 えおお
- 締切済み
- SQL Server
- エクセルでSQL文を自動で出力させたい
INSERT INTO `TableInfo` ( `author_id` , `name` , `no` , `addr` ) VALUES ('其一', '其二', '其三', '其四'); 上記のようなテーブルがありINSERTでデータを登録させていきたいと思っています。 そこで、エクセルに打ち込んだデータを、 '其一' '其二' '其三' '其四' に置き換えてSQL文としてテキストファイル等に出力させたいと思います。 エクセルはあまり得意ではなくどうやれば良いか判りません。 どなたか御教授お願い致します。
- ベストアンサー
- オフィス系ソフト
- 【SQL文】このような結合UNION?できますか?
SQL文でテーブルを結合し、insertしたいと思っています。 例) テーブル名:tb1, カラム:A1,A2 テーブル名:tb2, カラム:B1(b1,b2,b3,,,,) テーブル名:tb3, カラム:C1(c1,c2,,,,,,) tb2とtb3を結合させてtb1へinsertしたいと思いますが、 tb2とtb3リレーションを組める要素がありませんし、データの型も違います。 |A1 | A2 __|____|_____ 1 |b1 |c1 _____________ 2 |b1 |c2 _____________ 3 |b2 |c1 _____________ 4 |b2 |c2 _____________ 上記のような結果を作ってtb1へINSERTしたいのですが、UNION結合を使えるのか どうかすらわかりません。ネットで調べたのですが、突破孔を見つけることができ ませんでした。 ちなみにACCESSで結合までの結果を得るのに、SELECT B1.tb2,C1.tb3 from tb2,tb3 という文で出せましたが,mySQLではダメでした。 どなたかご教授おねがいできますでしょうか?
- ベストアンサー
- MySQL
お礼
ありがとうございました 参考にさせていただきます