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

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

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

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

Q&A

解決済

2回答

1639閲覧

SQL サブクエリの証明

ITStudyman

総合スコア15

SQL

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

0グッド

0クリップ

投稿2018/11/17 00:40

前提・実現したいこと

SQL初めて勉強中です;
現在、大量にあるデータの中から、
select a,b,j,C from z where C in (select C from z where j = 'N') and j != 'N';
というように、@「Nのカラムと一致したCのレコードを持つa,b,j,Cを抽出する」ことは
できたのですが、更にNが0であるということを証明できるコードに書き換えたいのですが、
どう書けば出ますでしょうか?

上記のコードを表示した状態のままでわかる方法に悩んでいます;

発生している問題・エラーメッセージ

該当のソースコード

SQL

試したこと

select distinct a,b,j,C, from z where C in (select C from z where j = 'N') and j != 'N';
jだけの重複を除外したいですが、a,b,Cに合わせて大量のレコードになってしまい、
変わりません。
select distinct j from z where C in (select C from z where j = 'N') and j != 'N';
とすれば、数行で出てきて、Nがないことを確認できるのですが、a,b,Cを表示した上で確認できるようにしたいです;

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

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

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

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

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

Orlofsky

2018/11/17 00:48

質問にCREATE TABLE文と数件で良いからテーブルに存在するデータのINSERT文、希望するSELECT結果も https://teratail.com/help#about-markdown の[コードを入力]を使って載せた方が適切なコメントが付き易いです。
退会済みユーザー

退会済みユーザー

2018/11/17 00:55

DB は何ですか? SQL Server? ACCESS? MySQL? Oracle? その他? それぞれ文法が違うというのは認識してますか?
hichon

2018/11/17 01:35

「a,b,C」が異なるならどうやって纏めるんですか?
sazi

2018/11/17 02:10

求めたい結果が矛盾しているように見えます。データのサンプルで示した方が意図が伝わります。
ITStudyman

2018/11/17 02:47

すいません。ご指摘の通りで、会社で習いはじめ、サンプル画像がありません;Oracle SQL Plusを使っています。
m.ts10806

2018/11/17 03:15

質問は編集できるので適宜追記、修正してください
sazi

2018/11/17 06:37

ご自身のイメージで表などで、質問に追加して下さい
guest

回答2

0

自己解決

わかりづらい質問ですみませんでした;
大変参考になりました!

投稿2018/11/20 11:22

ITStudyman

総合スコア15

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

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

0

ちょっと意味がわからないのですが

SQL

1create table z (id int primary key,a int null,b int null,c int null,j varchar(10) null); 2insert into z values 3( 1,101,201,1,'N'), 4( 2,102,202,2,'N'), 5( 3,103,203,NULL,'N'), 6( 4,104,204,1,'Y'), 7( 5,105,205,2,'Y'), 8( 6,106,206,NULL,'Y'), 9( 7,107,207,1,NULL), 10( 8,108,208,2,NULL), 11( 9,109,209,NULL,NULL);

だとして、命題の

SQL

1select distinct a,b,c,j from z where c in (select c from z where j = 'N') and j != 'N';

をひろうと

abcj
1042041Y
1052052Y

が抽出できます。ここでjにNがないことを確認すればよいでしょう
(実証データではNが存在しない証明にはなりませんけどね)

投稿2018/11/19 08:15

yambejp

総合スコア114829

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

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

ITStudyman

2018/11/20 11:14

ありがとうございます。今後の参考にいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問