MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

単一のMySQLクエリの条件に基づいてSUMとSUBTRACTIONを実行しますか?


これには、CASEステートメントを使用し、SUMとSUBTRACTIONの両方に設定します。まずテーブルを作成しましょう-

mysql> create table DemoTable866(
   Status varchar(100),
   Amount int
);
Query OK, 0 rows affected (0.63 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable866 values('ACTIVE',50);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable866 values('INACTIVE',70);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable866 values('INACTIVE',20);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable866 values('ACTIVE',100);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable866 values('ACTIVE',200);
Query OK, 1 row affected (0.11 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from DemoTable866;

これにより、次の出力が生成されます-

+----------+--------+
| Status   | Amount |
+----------+--------+
| ACTIVE   | 50     |
| INACTIVE | 70     |
| INACTIVE | 20     |
| ACTIVE   | 100    |
| ACTIVE   | 200    |
+----------+--------+
5 rows in set (0.00 sec)

以下は、単一のMySQLクエリで同じ列でSUMまたはSUBTRACTIONを実行するためのクエリです-

mysql> select sum(CASE WHEN Status = 'ACTIVE' then Amount
   WHEN Status = 'INACTIVE' then -Amount
   END) AS RemainingAmount
   from DemoTable866;

これにより、次の出力が生成されます-

+-----------------+
| RemainingAmount |
+-----------------+
| 260             |
+-----------------+
1 row in set (0.06 sec)

  1. 行の値を合計して結果を並べ替えるMySQLクエリ?

    このために、ORDERBY句とともにGROUPBYを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1499    -> (    -> StudentName varchar(20),    -> StudentMarks int    -> ); Query OK, 0 rows affected (0.46 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert in

  2. MySQLでSUMとFORMATを組み合わせて、結果をフォーマットします

    テーブルを作成しましょう- mysql> create table DemoTable1950    (    Amount float    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1950 values(45.60); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable19