Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

저장 프로시저를 사용하는 IF 조건이 있는 MySQL 합계 쿼리


Sum()은 MySQL의 집계 함수입니다. if 조건과 함께 합계 쿼리를 사용할 수 있습니다. if 조건의 합계 쿼리를 이해하기 위해 테이블을 생성해 보겠습니다.

테이블 생성 쿼리 -

mysql> 테이블 생성 SumWithIfCondition −> ( −> ModeOfPayment varchar(100) −> , −> Amount int −> );쿼리 OK, 영향을 받은 행 0개(1.60초)

삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다 -

mysql> insert into SumWithIfCondition values('Offline',10);Query OK, 1행 영향(0.21초)mysql> insert into SumWithIfCondition values('Online',100);Query OK, 1행 영향(0.16초) )mysql> SumWithIfCondition 값에 삽입('Offline',20);쿼리 OK, 1행 영향(0.13초)mysql> SumWithIfCondition 값에 삽입('Online',200);Query OK, 1행 영향(0.16초)mysql> insert into SumWithIfCondition values('Offline',30);Query OK, 1개의 row가 영향을 받았습니다(0.11초)mysql> insert into SumWithIfCondition values('Online',300);Query OK, 1개의 row가 영향을 받았습니다(0.17초)

select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -

mysql> SumWithIfCondition에서 *선택;

다음은 출력입니다 -

+---------------+--------+| 결제 모드 | 금액 |+---------------+--------+| 오프라인 | 10 || 온라인 | 100 || 오프라인 | 20 || 온라인 | 200 || 오프라인 | 30 || 온라인 | 300 |+---------------+--------+6행 세트(0.00초)

다음은 하나의 문자열을 매개변수로 사용하는 저장 프로시저입니다. -

mysql> 구분자 //mysql> 생성 프로시저 sp_GetSumWithPaymentMode11(PaymentMode varchar(200))−> begin−> SumWithIfCondition에서 TotalAmount로 PaymentMode,sum(if(ModeOfPayment=PaymentMode,Amount,0)) 선택;−> end / /Query OK, 영향을 받는 행 0개(0.32초)mysql> delimiter;

이제 호출 명령을 사용하여 저장 프로시저를 호출할 수 있습니다.

사례 1 - 온라인의 경우

쿼리는 다음과 같습니다 -

mysql> 호출 sp_GetSumWithPaymentMode11('온라인');

다음은 출력입니다 -

+-------------+-------------+| 결제 모드 | 총 금액 |+-------------+-------------+| 온라인 | 600 |+-------------+-------------+1 row in set (0.00 sec)Query OK, 영향을 받는 0 row (0.01 sec) 

사례 2 - 오프라인의 경우

쿼리는 다음과 같습니다 -

mysql> 호출 sp_GetSumWithPaymentMode11('오프라인');

다음은 출력입니다 -

+-------------+-------------+| 결제 모드 | 총 금액 |+-------------+-------------+| 오프라인 | 60 |+-------------+-------------+1 row in set (0.00 sec)Query OK, 영향을 받는 0 row (0.01 sec)