SQL文


みやっち  2005-10-13 07:49:19  No: 126213

SELECT文でデータを抽出したいんですがうまく出来ません。

テーブルA      
名前    |あ|
コード1|0
コード2|0
コード3|0
コード4|0
コード5|0

テーブルB
コード
名称

テーブルAのコード1〜5の中に数値が入っています。
テーブルAのコード1〜5すべてに0が入っていたときは抽出しない。
テーブルAとテーブルBのコードが一致した名称を抽出したいのです。

JOINを使って試してみたのですがうまくできません。
ご教授おねがいします。


みやっち  2005-10-13 07:57:24  No: 126214

すいません。
途中で送信を押してしまいました。

SELECT文でデータを抽出したいんですがうまく出来ません。

テーブルA      
名前    |あ|い|
コード1|0 |0 |
コード2|0 |1 |
コード3|0 |2 |
コード4|0 |0 |
コード5|0 |0 |

テーブルB
コード|1 |2 |
名称  |う|え|

テーブルAのコード1〜5の中に数値が入っています。
テーブルAのコード1〜5すべてに0が入っていたときは抽出しない。
テーブルAとテーブルBのコードが一致した名称を抽出したいのです。
下記のように。

名前        |い|
コード名称1|""|
コード名称2|う|
コード名称3|え|
コード名称4|""|
コード名称5|""|

JOINを使って試してみたのですがうまくできません。
ご教授おねがいします。


葉月  2005-10-13 17:55:31  No: 126215

ちょっとこの内容は板違いかな
Accessの板に質問する内容かと

冷たい態度もどうかと思うのでヒントを
あなたが日本語で書いている内容そのまま書けばいいかと
もう一つはJOINやるならLEFT JOINをうまく使えば出来ると思いますよ

ちょっと列と行の概念がめちゃくちゃな気がするので
うまく回答できないですけど・・・

上の説明だと
どれが列名でどれがデータなのかよくわからない表になってませんか?


葉月  2005-10-13 18:01:02  No: 126216

追記
抽出しないと言ってるわりには抽出した結果がほしいのかな?

本当にテーブルBってそれであってるの?
なんかすげぇ疑問のあるテーブルなきがするのですけど・・・


思うに  2005-10-13 18:02:20  No: 126217

http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200510/05100054.txt

の掲示もそうだけれども、問題点が何処にあって、
それがVB依存なのかを切り分けることが出来ないは調査不足では?

いな さんも指摘してますが、どうせなら、
http://www7.big.or.jp/~pinball/discus/access/index.html
で聞いたら解決が早いかと


もげ  2005-10-13 18:17:45  No: 126218

肝心の
「対象になるデータベースとそのバージョンは何か?」
の情報が秘密では、一般論のみになりますが、
まずは、そのExcelみたいなものを正規化するところからはじめないと、
SQLで抽出するのに非常に苦労する  という話から。
http://www.mars.dti.ne.jp/~o-shin/new/whatrdb/index.html
http://www.kogures.com/hitoshi/webtext/db-seikika/
http://ew.hitachi-system.co.jp/w/E6ADA3E8A68FE58C96.html
http://e-words.jp/w/E6ADA3E8A68FE58C96.html
http://www.netlaputa.ne.jp/~hijk/study/ae/datnom.html

テーブルB(コード、名称)は

コード  名称  
|1 |う |
|2|え|

という形でないとまともにJOINできないかと。
とりあえず、上記前提で、

>テーブルAのコード1〜5すべてに0が入っていたときは抽出しない。
というのは、テーブルBに「0」のコードが無ければ抽出されないので
それでOKと解釈し、

SELECT TABLE_B.名称, TABLE_B_1.名称
FROM TABLE_B AS TABLE_B_1 
 RIGHT JOIN (TABLE_B RIGHT JOIN TABLE_A 
 ON TABLE_B.コード = TABLE_A.あ)
 ON TABLE_B_1.コード = TABLE_A.い;
(Access2000で確認済み)
となるけど。

ちゃんと正規化したほうがよいでしょう。
というか、VBの話題じゃないから、
あとはデータベースを扱う掲示板で聞いたほうがよいでしょう。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加