- ベストアンサー
ACCESS n対nのデーターを結合したいのですが・・・。
お知恵をかしてください。 Aテーブル No 商品名 金額 1 AAA 1,111 3 CCC1 3,333 3 CCC2 3,333 5 EEE 5,555 Bテーブル No 商品名 金額 1 AAAAA 11,111 2 BBBBB 22,222 4 DDDDD 44,444 5 EEEEE1 55,555 5 EEEEE2 55,555 をNOで結合して Cテーブル AかBNo A商品 A金額 B商品 B金額 1 AAA 1,111 AAAAA 11,111 2 ブランク BBBBB 22,222 3 CCC1 3,333 ブランク 3 CCC2 3,333 ブランク 4 ブランク DDDDD 44,444 5 EEE 5,555 EEEEE1 55,555 5 ブランク EEEEE2 55,555 というテーブルを作成したいのですが、(AテーブルBテーブルのNoが一緒だったら1行目は行を1行にしたい。)ということは可能でしょうか? 詳しい方教えてください。
- その他(データベース)
- 回答数4
- ありがとう数3
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Aテーブルを T1、BテーブルをT2、とし [No] を [ID] とすると(No はAccessの予約語なので) 下記を新たなクエリのSQLビューに貼り付けてデータシートビューで見ると 両テーブルに含まれる番号だけの一覧がでてきます。 これを、Q1 とします select ID from T1 union select ID from T2; でこのクエリを元にして。 もう1個新たなクエリを作ります。 先ほどのQ1とT1、T2 を入れて Q1.ID ---→T1.ID \--→T2.ID のように結合線を引くとお望みの結果になるのでは? クエリ一発なら下記のSQLで行けないかな? SELECT T0.ID, T1.商品名, T1.金額, T2.商品名, T2.金額 FROM ([select ID from T1 union select ID from T2]. AS T0 LEFT JOIN T1 ON T0.ID=T1.ID) LEFT JOIN T2 ON T0.ID=T2.ID;
その他の回答 (3)
- CHIPDALE77
- ベストアンサー率21% (47/223)
UNIONでやっちゃうとうまくいかないですね… すみません。 きっとSQL1発ででうまく行くやり方ありますが めんどうな感じになりそうなので後者のLOOPで テーブルAの値があるなしでの条件分岐で 1個ずつ見てく方がよいかも。
補足
ご回答ありがとうございます。 SQLは面倒・・・なんですね・・・。 上記の方法だと、excelでのVBAの方が良さそうですね。 素人なので、accessのSQLで何となく出来そう!と思ったんですが、 excelでやった方が良いということが判って良かったです。
- CHIPDALE77
- ベストアンサー率21% (47/223)
一番簡単なのはクエリで クエリ1:A→B と クエリ2:B→A を作ってクエリ3で SELECT * FROM クエリ1 UNION SELECT * FROM クエリ2 と結合しちゃえば出来ますよ。 テーブルに書き込むなら loopでまわして一個ずつdlookupとかで探すとか…
- CHIPDALE77
- ベストアンサー率21% (47/223)
可能ですよ。 なんで新しいテーブルを作るのかは疑問ですが… (表示可能な場合はテーブルを作らないのが原則) ただSQL一発でやろうとすると結構複雑になるかも。 どのような手法でやりたいですか?
補足
ご回答ありがとうございます。 質問には載せてなかったのですが、NOに複数の枝番がある形なんです。 1-1、1-2、1-3・・・・2-1、2-2・・・のような感じで・・・ Aテーブル、Bテーブルそれぞれ枝番の数は決まってないです。 結果n対nになるんです。(集計は枝番付きのNOは別フィールドにしています。) やり方は、SQLまたは、VBAが良いのですが、(ACCESSのクエリ機能でも・・・)簡単な方法があれば、 ご回答いただきたいです。
関連するQ&A
- テーブルAにあって、テーブルBにないデータ抽出
このようなデータのテーブルがあります。 テーブルA key ID ----------------- 1 AAAAA 2 BBBBB 3 CCCCC 4 DDDDD 5 EEEEE 6 FFFFF 7 GGGGG 8 HHHHH 9 IIIII テーブルB key ID ----------------- 1 AAAAA 2 CCCCC 3 EEEEE 4 FFFFF 5 HHHHH 6 IIIII 7 JJJJJ 8 KKKKK 9 LLLLL この場合テーブルAのIDの中で、テーブルBのIDには存在しない行を取り出すのに、プログラムを使わずに取得する方法はありますか? この例だと取得するはずの行は key ID ----------------- 2 BBBBB 4 DDDDD 7 GGGGG になります。 どうかよろしくお願いします。
- ベストアンサー
- MySQL
- 【Excel2007】A列の値がB列に存在しないことを確認したい
いつもお世話になっております。 Excel2007を使用しております。 次のような一覧があります。 A列 B列 aaaaa aaaaa bbbbb bbbbb ccccc ddddd ddddd fffff eeeee A列にはあるが、B列にはない値を取得したいと 思っております。 この例であれば、「ccccc」と「eeeee」を抜き出したいのです。 何か関数などで抜き出す方法がございましたら、 教えて頂けませんか? A列、B列ともに2000行程度あるため、調査に苦労しています。 ぜひよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- シーケンシャルアクセスについて
シーケンシャルアクセスについて教えてください。 テキストファイルの内容が... *************************************************** aaa bbb ccc ddddd eeeee aあ bbb ccc ddddd eeeee *************************************************** 空白の部分(aとbの間)にはタブが入っています このテキストファイルをアクセス2000において テーブルにインポートする場合 Open...AS #1 'テキストオープン set ... 'データベース・テーブルオープン input #1 rireki Mytable![項目名] = Mid(rireki, 1, 3) 上のような感じでテキストのデータをテーブルに取り込もうとすると 2行目の"aあ"の"あ"が全角なので"aあ"以外の空白も取り込んでしまいます どうすれば全角を半角2桁として取り出すことが出来ますか? 宜しくお願い致します。
- ベストアンサー
- Visual Basic
- 秀丸のマクロでカラムごとの処理
aaaaa,bbbbb,ccccc,ddddd,eeeee 上記のようなCSVファイルで、2カラム目のbbbbbと 4カラム目のdddddの文字を変換するという場合 どういったマクロになりますでしょうか? よろしくお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- ファイルを移動するためのバッチファイル
テキストファイル(1行に1つのファイル名が書かれていて、ファイルの数だけの行があるテキスト)を読み込み それをもとに、パス指定した参照先ディレクトリより、1つずつファイルを取得し、 パス指定した保存先ディレクトリに保存していくという、ファイルを移動(コピー)するためのバッチファイルを作りたいのですが どのようなコマンドを記述すればよいでしょうか? (できれば、MS-DOSのバッチファイルだと助かります) 例 [list.txt] aaaaa bbbbb eeeee [参照先] aaaaa bbbbb ccccc ddddd eeeee ↓ [保存先] aaaaa bbbbb eeeee
- ベストアンサー
- その他(ソフトウェア)
- MySQLで同じデータにフラグ付け出来ますか?
データベースの初心者です。MySQLを使用してSQL文を試しましたが、うまくいきません。 わかりやすく教えていただけますか? 下のような2つのテーブルで、テーブル2の項目カラムに存在するデータが、 テーブル1の区分にあれば、一致する行(NOカラムの5~7)だけに、 フラグ”1”を付けたいのです。(区分カラムに、"*"で始まるデータは除きます) 区分に、データが全て埋まっていれば簡単に出来るのですが、 先頭行のみデータがあって、次の区分まで、Nullが入っています。 テーブル1 NO 区分 フラグ 1 aaaaa null 2 null null 3 null null 4 null null 5 bbbbb null 6 null null 7 *nozoku null 8 ccccc null 9 null null テーブル2 NO 項目 1 bbbbb 2 eeeee よろしくお願いします。
- ベストアンサー
- MySQL
- テーブル結合のSQL文について
はじめまして、よろしくお願いします。 テーブルA、B、Cから情報を取得し、下記のSELECTイメージを表示させたいのですが、 どのようなSQLを記述すれば良いのかわからず、困っております。 どなたかご教示頂けますでしょうか。 SELECTイメージ 日付 キー ------------ ------------- 9/1 AAAAA 9/1 CCCCC 9/2 AAAAA 9/2 CCCCC 9/3 AAAAA 9/3 BBBBB 9/3 CCCCC 9/4 AAAAA 9/4 BBBBB 9/4 CCCCC テーブルA 日付 キー ------------- ------------- 8/31 AAAAA 8/31 CCCCC テーブルB 日付 キー ------------ ------------- 9/1 AAAAA 9/3 BBBBB 9/4 CCCCC テーブルC 日付 ------------- ・ ・ ・ 8/31 9/1 9/2 9/3 9/4 9/5 9/6 ・ ・ ・
- 締切済み
- Oracle
- excelデータの斜めの文字行の抽出
excelデータの斜めの文字行だけを絞りこんだり、抽出することはできんるのでしょうか。 例) 行NO. 001 AAAAA 002 BBBBB <=ここがexcelでは斜めになっている 003 CCCCC 004 DDDDD <=ここがexcelでは斜めになっている 結果 002 BBBBB 004 DDDDD VBAとかでも構いません。 宜しくお願いします。
- ベストアンサー
- その他(ソフトウェア)
- VBAでマクロを作りたいのですが、、、困ってます
1問目に答えた人で2問目に答えた人は何人いたか・・・ 2問目で初めて答えた人は何人いたか・・・・というのを計算させたいです。 たとえば(1)のデータがあった時に、(2)のデータのように変換したいとしたらどのようなVBAマクロにすればよいのでしょうか。 (1) 質問No,回答者, 1,AAAAA 1,BBBBB 1,CCCCC 1,AAAAA 2,AAAAA 2,BBBBB 3,AAAAA 3,DDDDD (2) 1 2 3 ←回答回数 1問目 3 2 1 2問目 0 0 3問目 1 上の結果ですが、 1問目で1回目に答えたのはAAAAA,BBBBB,CCCCCの3人、 1問目に答えて2問目に答えたのは、AAAAA,BBBBBの2人、 そのまま2問目に答えた人で3問目にも答えたのはAAAAAの1人、 2問目で初めて答えた人、その中で2問答えたのは0人 3問目で初めて答えた人は、DDDDDの1人 のような表を意味しています。 データは2万行ほどあるので、VBAで処理しなければならないと考えています。 ほかにも何か方法があれば教えていただけると助かります。 どうぞよろしくお願いします。
- 締切済み
- Excel(エクセル)
- Excelで同一のデータを抽出して横並びに
A B C D 商品コード 注文数 商品コード 注文数 aaa 15 ccc 4 bbb 12 ddd 6 ccc 10 aaa 22 ddd 6 eee 10 eee 5 bbb 7 fff 8 kkk 9 kkk 7 lll 4 上記のようなデータを 以下のように同じ商品コードを横並びに表示させたいのですが どういったcountifとかで試したのですが上手くいかず、どのような関数を使えば可能でしょうか? A B C D 商品コード 注文数 商品コード 注文数 aaa 15 aaa 22 bbb 12 bbb 7 ccc 10 ccc 4 ddd 6 ddd 6 eee 5 eee 10 fff 8 kkk 7 kkk 9 lll 4 宜しくお願い致します。
- ベストアンサー
- Excel(エクセル)
お礼
ご回答ありがとうございます。 希望通りできました! 本当にありがとう御座います! (前々から、これができたら楽だと思ってたので・・・) 今後も、いろんなことに応用させていただきます★