SQLの知識に乏しい者です。
よろしくお願い致します。
●テーブルA
・会計コード
・年度
・部署番号
・社員番号
・その他幾つかのデータ
※Where句で「年度>2002年」以降を抽出
のテーブルがあります。
この時、Bテーブルで
●テーブルB
・会計コード(主キー)
・年度
・部署番号(主キー)
・社員番号(主キー)
・その他幾つかのデータ
※Aテーブルで抽出されたデータの中から絞り込む
というテーブルを抽出するSQL文を組みたいのですが、効率の良いやり方がわかりません。
副問合せで
Select [B表で抽出した列名…]
From B表
Where 会計コード = (Select 会計コード
From A表
Where 年度 > '2002')
AND 部署番号 = (Select 部署番号
From A表
Where 年度 > '2002')
・・・・以下省略
の様に書くと効率が悪い気がしました。
(実際には、副問合せが6個書くことになるため)
良い書き方を知っている方がいらっしゃいましたら、よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
もしかして
select * from B
where (会計コード,部署番号) in (select 会計コード,部署番号 from A where 年度>'2002')
ということ?(オラクルは複数項目を一度に比較できます)
でも、質問に書かれているSQLとは、違った結果になるような気がします。
(質問に書かれたSQLが適切でない気がする)
早速のご返答ありがとうございます。
質問するカテゴリが違いました。すいません。
今使っているのは「SYBASE」です。
OLACLEとほぼ変わらないと思って、ここに書いてみたのですが。
ですので、カテゴリを変えます。
select *
おそらく、「in」は使えないですよね・・・
マニュアルで見たら載っていなかったので。
質問に書いたSQLはわからないなりに、
書いてみたので間違っているのかもしれないですが、
私が求めているのはk_o_r_o_c_h_a_nさんが書いてくれたSQL文です。
もし、SYBASEでの書き方がわかればよろしくお願い致します。
No.2
- 回答日時:
今oracle環境無いので分かりませんが。
■select [B表列名、B表列名…] from B表
where (select [A表.会計コード,A表.部署番号,…] from A表 where A表.年度 > '2002')
■select [B表列名、B表列名…] from B表
where B表.会計コード = A表.会計コード and A表.部署番号 > '2002'
どちらかでどうでしょうか。
間違ってたら適宜修正してください。
色々作成したものはコマンドプロンプト上でsql*plusを使って
set time onコマンドを書いてスクリプトを実行させて時間を計って見るといいと思います。
何でも書いてみて実験してみると結構勉強になりますよ。
早速ありがとうございます。
下記にも書いた通り、SYBASEというものを使っているのです。
カテゴリが違うので、試して出来なければまた質問させて頂きます。
アドバイスありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- MySQL 三科目合計点のクラス別平均点求めるクエリ式を教えてください 1 2023/07/04 09:44
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CREATE テーブルでの複数外部...
-
Access終了時の最適化が失敗?
-
「SQLの絵本」について
-
SQLに関して
-
Oracleでの文字列連結サイズの上限
-
GROUP BYを行った後に結合した...
-
アクセスでレポートの1印刷内...
-
SELECTで1件のみ取得するには?
-
Accessで別テーブルの値をフォ...
-
wordのマクロで思うように行き...
-
SQL文で右から1文字だけ削除す...
-
レコードが存在しなかった場合
-
ADO VBA 実行時エラー3021
-
差し込み印刷のレコード数について
-
DataGridViewの内容をDBに反映...
-
使うべきでない文字。
-
カレントレコードが無い事を判...
-
select句副問い合わせ 値の個...
-
image型のInsertについて
-
実績累計の求め方と意味を教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access終了時の最適化が失敗?
-
CREATE テーブルでの複数外部...
-
Order by句でバインド変数を使...
-
沿線コード
-
ヤマト急便のチェックデジット...
-
困っています。ORACLE_SQL 複数...
-
SQLServer 日付が直前のレコー...
-
Excelファイルのデータをテーブ...
-
SQL 特定のカラムが最大値のレ...
-
10営業日前の日付を取得したい...
-
平成20年 春期 基本情報技術者 ...
-
スペシャリストの方! 助けてく...
-
【SQL】またぎデータの検索の仕方
-
SQLの質問
-
SQLについて
-
SQLの実行結果が異なる
-
SQLにて縦を横へ展開
-
DoCmd.ApplyFilter引数を文字に...
-
「SQLの絵本」について
-
RDBの親子関係の表現について
おすすめ情報