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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

1回答

361閲覧

条件によって金額を足し引きした結果を得たい

h-jimo

総合スコア9

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2022/12/01 00:49

編集2022/12/01 02:22

実現したいこと

条件(phase)によって数量(quantity)を足し引きした結果を得たい。

対象データ

idproduct_idphasequantitycreated_at
11010002022-10-01
21010002022-10-01
31105002022-10-01
41010002022-10-02
511010002022-10-02

得たいデータ(足し引き結果)

iddateproduct_idquantityquantity の出し方(計算式)
12022-10-01115001000+1000-500
22022-10-02101000-1000

cereated_atが同じ日付でproduct_idが同じとき、
phase=0の数量(quantity)を足して、phase=10の数量(quantity)を引く

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

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

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

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

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

yambejp

2022/12/01 01:27 編集

2022-10-02が1000-1000なら結果は0では? ちなみに集計したら命題のように個別のidやquantityは拾えません
h-jimo

2022/12/01 02:23

0に修正しました。ご指摘ありがとうございます。
guest

回答1

0

ベストアンサー

SQL

1create table tbl( 2id int primary key, 3product_id int, 4phase int, 5quantity int, 6created_at date); 7insert into tbl values 8(1,1,0,1000,'2022-10-01'), 9(2,1,0,1000,'2022-10-01'), 10(3,1,10,500,'2022-10-01'), 11(4,1,0,1000,'2022-10-02'), 12(5,1,10,1000,'2022-10-02'); 13 14select 15product_id, 16created_at, 17sum(quantity*(phase=0)-quantity*(phase=10)) as result 18from tbl 19group by product_id,created_at;

投稿2022/12/01 01:28

編集2022/12/01 01:28
yambejp

総合スコア114843

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

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

h-jimo

2022/12/01 02:24

ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問