質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

2回答

1176閲覧

データ抽出のSQL(Oracle)についてご教示ください。

beetle_comfi

総合スコア4

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2020/02/02 10:41

編集2022/01/12 10:55

経緯

以下を満たす条件で、データを抽出するSQLを考えているのですが、行き詰まっております。
お手数をおかけしますが、ご教示頂ければと思います。

発生している問題

以下の2テーブルにおいて、同一の請求情報.計上確定番号で、
請求明細情報.請求確定処理済フラグが「1:済」の場合は、
伝票番号が抽出されないSQLを実現したいです。

■請求情報

伝票番号計上確定番号
10011
10021

■請求明細情報

伝票番号伝票明細番号請求確定処理済フラグ
100110
100121
100210
100220

試したこと

請求明細情報.請求確定処理済フラグが「1:済」ではない伝票番号を
抽出するSQLは実現できました。

select 伝票番号 from 請求情報 a where not exists ( select 1 from 請求明細情報 b where a.伝票番号 = b.伝票番号 and b.請求確定処理済フラグ = '1' and a.計上確定番号 = '1' )

その他

ご教授頂く際、もし可能であれば(このように複雑?な)、SQLの組み立て方の考えが知りたいです。
最近、副問合せ系(特に相関)のSQLが苦手な事に悩んでおり、習得したいと考えています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2020/02/02 12:02

SQLの動作確認ができた方が良い質問ではテーブル定義はCREATE TABLEに、テーブル中のデータはINSERTに 変更した方が適切なコメントが付き易いです。
Orlofsky

2020/02/02 12:03

教授 → 教示
firstlast

2020/02/02 20:40

(1)請求明細情報.請求確定処理済フラグが「1:済」の場合は、 伝票番号が抽出されないSQLを実現したいです。 (2)請求明細情報.請求確定処理済フラグが「1:済」ではない伝票番号を 抽出するSQLは実現できました。 上記(1)(2)はそれぞれ質問内容にある 「実現したいこと」、「試して実現できたこと」なのですが、同じことを言ってませんでしょうか?
guest

回答2

0

もっと複雑なSQLはあるので、簡単なSQLだと思っていたほうがいいでしょう。
因みに他のテーブルにあるデータと付き合わせて行を絞り込む方法は、
質問内容に記載されているような方法の他に、内部結合といいう方法もあります。結果はどちらでも同じです。速度も大して変わりません。

投稿2020/02/02 20:59

編集2020/02/02 21:00
firstlast

総合スコア138

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

(計上確定番号=1または請求確定処理済フラグが「1:済」)以外を抽出するなら

SQL

1select 伝票番号 from 請求情報 a 2where 計上確定番号 != '1' 3 and not exists ( 4 select 1 from 請求明細情報 5 where 伝票番号 = a.伝票番号 6 and 請求確定処理済フラグ = '1' 7 )

投稿2020/02/02 16:54

sazi

総合スコア25138

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問