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

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

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

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

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

Q&A

解決済

1回答

3703閲覧

サブクエリを使って、多対一の関係のテーブルの価格と商品を合わせて表示したい

nekomura

総合スコア132

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

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

0グッド

0クリップ

投稿2016/03/17 00:06

編集2016/03/17 00:19

よろしくお願いいたします。

テーブルHdrと、テーブルDtlがあります。
テーブルHdrとテーブルDtlは、一対多の関係です。

テーブルHdrには、複数の商品が、テーブルDtlには商品を合計した販売価格があります。
テーブルHdrに対して、テーブルDtlのそれぞれの販売価格をくっつけて表示したいです。
join句ではなく、サブクエリを使って書きたいのですが、select句のサブクエリやfrom句のサブクエリなど、検索では様々な書き方があり、どれが良いのか理解できずこちらで質問させていただくことにいたしました。

有職者の方々、お知恵を貸していただければ幸いです。

SELECT ○○○○ ○○○○ ○○○○ ○○○○ ・ ・ ・ ・ ・ FROM テーブルHdr (サブクエリ)

※イメージ(実行後/アウトプット)

テーブルHdr | テーブルDtl
ーーーーーーーーーーーーーーー
商品A | 価格1000円
商品B | 価格1500円
商品C | 価格800円


※イメージ(テーブル内)
テーブルHdr
ーーーーーー
商品名
ーーーーーー
A
B
C
.
.
.
.

テーブルDtl
ーーーーーー
価格合計
ーーーーーー
1500
400
2000
.
.
.
.

どうぞよろしくお願いいたします。

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

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

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

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

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

Tak1wa

2016/03/17 00:13

イメージはアウトプットですよね?それに対するテーブルHdr と テーブルDtl のインプット例を示してください。「テーブルHdrには、複数の商品が、テーブルDtlには商品を合計した販売価格があります」解釈違いが起きそうな気がするので
nekomura

2016/03/17 00:15

Tak1wa様 はい、イメージはアウトプットです。 ご指摘ありがとうございます。
Tak1wa

2016/03/17 00:23

修正ありがとうございます。ただ省略せずに、もう少し具体的に記載をお願いします。というのも商品Aがどのようなロジックで1000円になるのか不明です。
BlueMoon

2016/03/17 01:25

テーブルDtlに商品名の列が無いのでjoinできないですね。また列名が「価格合計」となっていますが、質問文では商品単位の販売額を集計したい意図のようなので矛盾している感じが有ります。質問文を整理された方が良いように思えます。
lilithchan

2016/03/17 01:30

あと、join句を使いたくない理由を書いて貰えると答えやすいと思います。 このような単純なデータ抽出であればjoin句を使わない事がデメリットだと思います。
guest

回答1

0

ベストアンサー

テーブルHdr | テーブルDtl
ーーーーーーーーーーーーーーー
商品A | 価格1000円
商品B | 価格1500円
商品C | 価格800円

上記のイメージが1対1の関係になっているのに対し、
前提条件にも矛盾が見受けられるため、解答が難しいと思います。

テーブルHdrのレコード1つに対して、Dtlのレコードが複数紐付くということでしょうか?

テーブルHdrとテーブルDtlは、一対多の関係です。

それとも、下記の記述を見ると、テーブルDtlのレコード1つに対して、Hdrのレコードが複数紐付くという風にも受け取れます。

テーブルHdrには、複数の商品が、テーブルDtlには商品を合計した販売価格があります。

投稿2016/03/17 00:22

Odacchi

総合スコア907

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

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

nekomura

2016/03/17 00:29

Odacchi様 まだ初心者の為、うまくお伝えができずもうしわけありません。 >テーブルHdrのレコード1つに対して、Dtlのレコードが複数紐付くということでしょうか? テーブルHdrのレコード1つに対して、それに対応したDtlのレコードを一つ紐付けたいという意味です。 申し訳ありません。 今一度ご教示をいただければ幸いです。
nekomura

2016/03/17 05:24

Odacchi様 申し訳ありません、現在まだ今回実行したい事をきちんと言葉にするには 時期尚早だったようです。 勉強不足でご迷惑をおかけいたしました。 また、近い機会に改めてご教示いただければ幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問