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

ストアドプロシージャを使用したIF条件を使用したMySQL合計クエリ


Sum()はMySQLの集計関数です。 if条件で合計クエリを使用できます。 if条件を使用した合計クエリを理解するために、テーブルを作成しましょう。

テーブルを作成するためのクエリ-

mysql> create table SumWithIfCondition
   −> (
   −> ModeOfPayment varchar(100)
   −> ,
   −> Amount int
   −> );
Query OK, 0 rows affected (1.60 sec)

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです-

mysql> insert into SumWithIfCondition values('Offline',10);
Query OK, 1 row affected (0.21 sec)

mysql> insert into SumWithIfCondition values('Online',100);
Query OK, 1 row affected (0.16 sec)

mysql> insert into SumWithIfCondition values('Offline',20);
Query OK, 1 row affected (0.13 sec)

mysql> insert into SumWithIfCondition values('Online',200);
Query OK, 1 row affected (0.16 sec)

mysql> insert into SumWithIfCondition values('Offline',30);
Query OK, 1 row affected (0.11 sec)

mysql> insert into SumWithIfCondition values('Online',300);
Query OK, 1 row affected (0.17 sec)
>

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-

mysql> select *from SumWithIfCondition;

以下は出力です-

+---------------+--------+
| ModeOfPayment | Amount |
+---------------+--------+
| Offline       |     10 |
| Online        |    100 |
| Offline       |     20 |
| Online        |    200 |
| Offline       |     30 |
| Online        |    300 |
+---------------+--------+
6 rows in set (0.00 sec)

これは、1つの文字列をパラメータとして受け取るストアドプロシージャです-

mysql> delimiter //

mysql> create procedure sp_GetSumWithPaymentMode11(PaymentMode varchar(200))
−> begin
−> select PaymentMode,sum(if(ModeOfPayment=PaymentMode,Amount,0)) as TotalAmount from SumWithIfCondition;
−> end //
Query OK, 0 rows affected (0.32 sec)

mysql> delimiter ;

これで、callコマンドを使用してストアドプロシージャを呼び出すことができます。

ケース1-オンラインの場合

クエリは次のとおりです-

mysql> call sp_GetSumWithPaymentMode11('Online');

以下は出力です-

+-------------+-------------+
| PaymentMode | TotalAmount |
+-------------+-------------+
| Online      |         600 |
+-------------+-------------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

ケース2-オフラインの場合

クエリは次のとおりです-

mysql> call sp_GetSumWithPaymentMode11('Offline');

以下は出力です-

+-------------+-------------+
| PaymentMode | TotalAmount |
+-------------+-------------+
| Offline     |          60 |
+-------------+-------------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

  1. MySQL Workbenchを使用してストアドプロシージャを作成しますか?

    まず、ストアドプロシージャを作成しましょう。以下は、MySQLWorkbenchを使用してストアドプロシージャを作成するためのクエリです。 use business; DELIMITER // DROP PROCEDURE IF EXISTS SP_GETMESSAGE; CREATE PROCEDURE SP_GETMESSAGE() BEGIN DECLARE MESSAGE VARCHAR(100); SET MESSAGE="HELLO"; SELECT CONCAT(MESSAGE,' ','MYSQL!!!!'); END //

  2. ApacheでのMySQLの使用

    ApacheでMySQLを使用する方法を理解しましょう- Apacheは、ApacheSoftwareFoundationによって開発および保守されているWebサーバーソフトウェアです。これは、ユーザーからの要求を受け取ってWebページにアクセスするソフトウェアです。 HTTPリクエストに対していくつかのセキュリティチェックが実行され、ユーザーはWebページに移動します。 MySQLデータベースからのユーザーの認証を可能にする多くのプログラムがあります。これらのプログラムを使用して、ログファイルをMySQLテーブルに書き込むこともできます。 Apacheのログ形式は、MySQLを使用し、