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

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

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

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

Q&A

解決済

1回答

301閲覧

SQLでSUMをして条件が合った複数行をすべてSELECTしたい

sususu

総合スコア99

SQL

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

0グッド

0クリップ

投稿2018/11/14 07:10

編集2018/11/20 07:43

表題の件のようなクエリを作成したいのですがわからないのでどなたかご教授願えますでしょうか。
よろしくお願いします。

下記のような表があります。

イメージ説明

見ていただくと『チョコバナナの製品』と『リンゴ飴』の製品があるのですが、それぞれの材料数が一致しているプロダクトのみ表示したいです。

チョコバナナの製品のチョコは『5+5=10』バナナは『8+2=10』なのでそれに該当する4行すべて表示したいです。

リンゴ飴の製品のリンゴは『10』飴は『4+4』なので材料がそろっていないと言う事で表示したくありません。

どなたかご回答よろしくお願いいたします。

下記作成したSQLになります、まだプロダクト事に指定して作成している段階で、
表示も4行ではなく1行しか出せていません。(合計数)
select * チョコバナナ,材料1,材料2 from テーブル group by チョコバナナ having sum(材料1)=sum(材料2)

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

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

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

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

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

m.ts10806

2018/11/14 07:25

想定しているDBの種類とバージョンを環境情報として追記してください。また、成功している必要はないので自身で思うとおりに作って試してみたコードをご提示ください。
takasima20

2018/11/14 07:29

アプリケーション側で処理するのがいいんじゃないかなあ。
sususu

2018/11/14 07:49

おっしゃる通りこれからはバージョンなど記載するように致します。コメントありがとうございました。
momon-ga

2018/11/14 07:59

これ、リンゴ飴、リンゴ、4のデータが追加されてた場合は、どうなるの?合計が違うから非表示?それとも、4の部分だけ表示?
guest

回答1

0

ベストアンサー

質問のタイトルで削除したい、本文では表示したい、ってなっているけどどちらが目的?

質問にテーブルの定義はCREATE TABLE で、テーブルに存在するデータはINSERTで載せた方が適切なコメントが付き易いです。

同じSQLでもデータベースによって方言が大きいですから、どのデータベースを使うのかを質問のタグで明示したり、バージョンも明記した方が適切なコメントが付き易いです。 SQLの観点から Oracle Database, PostgreSQL, MySQL の特徴を整理しよう!

表示する方はたぶん、こんな感じ。CREATE TABLEも提示していないから実行してないけど。

SQL

1SELECT 2 PRODUCT -- プロダクト 3 , ZAIRYO_SU1 -- 材料数1 4 , ZAIRYO_SU2 -- 材料数2 5FROM TAB1 -- テーブル名 6WHERE PRODUCT = 7 ( 8 SELECT 9 PRODUCT 10 FROM TAB1 11 HAVING SUM(ZAIRYO_SU1) = SUM(ZAIRYO_SU2) 12 GROUP BY PRODUCT 13 ) ;

投稿2018/11/14 07:40

編集2018/11/14 07:43
Orlofsky

総合スコア16415

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

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

sususu

2018/11/14 07:42

ありがとうございます!確認してみます!
sususu

2018/11/14 07:52

ご回答ありがとうとうございました。 バージョンやデータベースなど詳しく調べる前に質問してしまい失礼いたしました。これからは調べてから質問させて頂きます。 又、最終的にやりたいことは削除だったのですが、セレクトでテストしていたのでセレクトと書いてしまい混乱を招くような記載で失礼いたしました。
Orlofsky

2018/11/14 08:02

掲示板は同じ疑問に直面した人が検索して調べる時に役に立つものであって欲しいものです。 なるべく質問は修正してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問