ORACLE8.0.5において
A-DB
code char(10);
updte char(14);
B-DB
code char(10);
A-DBとB-DBにおいてcodeが不一致のデータの抽出をする場合、
select B-DB.code from A-DB,B-DB
where A-DB.code <> B-DB.code
and A-DB.updte >= '20020301000000'
and A-DB.updte <= '20020331235959';
上記のようなSQL文を作成し実行したが、A-DBのcodeに対してB-DBのcodeを全部検索し、B-DBの検索分がすべて不一致になってしまいました。 SQLの考え方がまちがっているのかわからないでいるので、アドバイスをお願いいたします。
No.3ベストアンサー
- 回答日時:
B-DBに存在してA-DBに存在しないcodeを検索する場合は以下のSQLです。
select code from b-db
where not exists (select 'X' from a-db where code=b-db.code);
同じように、A-DBに存在してB-DBに存在しないcodeの検索は
select code from a-db
where not exists (select 'X' from b-db where code=a-db.code);
でできます。
No.2
- 回答日時:
select code,updte from a-db
where not exists
(select code from b-db
where b-db.code = a-db.code
)
and A-DB.updte >= '20020301000000'
and A-DB.updte <= '20020331235959';
ではどうでしょうか?
(Oracle 8.1.6では動作しました。)
No.1
- 回答日時:
SQLというよりはリンクするA表とB表の作成の仕方がおかしいのでは?
よく見直してみるとわかると思うのですが、A表とB表をリンク付けるものがありませんよね?
恐らくは以下の事をやりたいのでは?と思いますが。
-------------------------------------
A表 B表
1行目 aaaaa 20020301000000 bbbbb
2行目 ccccc 20020314001100 ccccc
3行目 ddddd 20020331000001 eeeee
4行目 eeeee 20020401000000 fffff
で1行目と3行目のデータを抽出したい。
-------------------------------------
A表とB表をリンク(=)する情報がないと例えば、aaaaaに対して bbbbb,ccccc,eeeee,fffffをcccccに対してbbbbb,ccccc・・・・・
の様に各列に対して全てチェックしてしまうので
結果的にB表の全てのデータが当てはまってしまう結果になります。
そうしたいのであれば、
1. A表,B表に通番という列を追加
2. whereの条件に A.通番 = B.通番を追加
で、予想通りの結果が替えると思います。
一例ですが・・・。(汗;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Activation codeとは
-
SELECT INTOで一度に複数の変数...
-
sqlに記述できない文字
-
truncate tableを使って複数の...
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
UPDATEで既存のレコードに文字...
-
テーブル名が可変の場合のクエ...
-
Accessで最新のレコード...
-
PostgreSQLのtimestamp型で時間...
-
オラクルのUPDATEで複数テーブル
-
MySQL: 複数テーブルのcount
-
ACCESSのVBAにてExcelに行...
-
2つのテーブルをLIKE演算子のよ...
-
Accessで今日から5日後
-
pandasでsqlite3にテーブル作成...
-
Excel VBAのユーザーフォームで...
-
IDとパスワードについて。
-
クエリ式でDcount の代わりは?
-
データベース ユーザの「このユ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー:2517 プロシージ...
-
CPRM decrypterのエラーコード...
-
テーブル名が可変の動的SQLをフ...
-
オシロスコープYOKOGAWA DL708...
-
Oracl[10g]の SQL文について(No.8)
-
Activation codeとは
-
selectの書き方を教えてください
-
オラクルDBでの不一致の検索
-
B4サイズは?mmx?mmですか?
-
グループ関数と結合を同時に使...
-
JIS地域コード
-
SQL スクリプトの質問
-
Access97のクエリー(sql文)につ...
-
PostgreSQL : 多値従属性(第四...
-
新宿、池袋付近でお勧めの焼き...
-
Access2000のDLOOKUPについて
-
フラグをたてるってどういうこ...
-
SELECT INTOで一度に複数の変数...
-
【SQL】他テーブルに含まれる値...
-
sqlに記述できない文字
おすすめ情報