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

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

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

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

SQL

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

Q&A

解決済

1回答

2393閲覧

sql 同じテーブル内の副問合せ?

hj_zebra

総合スコア10

Oracle

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

SQL

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

0グッド

0クリップ

投稿2019/11/15 04:34

編集2019/11/15 05:48

テーブル内のデータをIDと日付でまとめてVALの値を抽出したいです。
副問合せを使ってやるのではと考えています。
教えていただきたいです。

◆テーブル内

IDDATEVAL_IDVAL
12019010110aaa
12019010120bbb
12019010130ccc

◆抽出したい内容

IDDATEVAL10VAL20VAL30
120190101aaabbbccc
SELECT T1.ID, T1.DATE, T1.VAL_ID AS VAL10     (         SELECT             SUB1.VAL,         FROM             SUB1         WHERE         AND VAL_ID = '20'     ) AS VAL20,     (         SELECT             SUB2.VAL,         FROM             SUB2         WHERE         VAL_ID = '30'     ) AS VAL30 FROM T1  WHERE T1.VAL_ID =  '10'

「単一行副問合せにより2つ以上の行が戻されます」
↑↑このようなエラーが出力されます。

テスト用sqlを記述したため間違いがあると思われますが
上のテーブル内容などを見てご理解していただければと思います。

`試したsql2` SELECT T1.ID, T1.DATE, LISTAGG(VAL,',')WITHIN GROUP(order by VAL_ID) List_VAL FROM T1 WHERE (T1.VAL_ID = '10' OR T1.VAL_ID = '20' OR T1.VAL_ID = '30') GROUP BY T1.ID , T1.DATE

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

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

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

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

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

guest

回答1

0

ベストアンサー

データベースは何でしょうか?
Oracle LISTAGG
MySQL GROUP_CONCAT
PostgreSQL STRING_AGG
でググってみては?

投稿2019/11/15 04:43

Orlofsky

総合スコア16415

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

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

hj_zebra

2019/11/15 06:23

DATEの名前を適当にA_DATEと変更したことでできました。 列名が予約語だからですね。テストのsqlと思って甘く見ていました。 ご教示いただきありがとうございました。
Orlofsky

2019/11/15 06:31 編集

解決済みね。 Oracle の無料版がありますから、SQLを実行できる環境を用意した方がいいです。Oracle11.2はもうバグが見つかっても新たにパッチは作ってくれない古いばーじょんです。
hj_zebra

2019/11/15 06:34

>Orlofskyさん 承知しました。 実行できる環境を探してみようと思います。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問