2016-09-02 3 views
0
+----+--------+------+------------+-----------+----------+------+ 
| id | deb_id | name | date  | nominal | duration | type | 
+----+--------+------+------------+-----------+----------+------+ 
| 1 | K7PJ8 | John | 2016-09-04 | 100000.00 |  2 | DB | 
| 2 | K7PJ7 | Rey | 2016-08-30 | 125000.00 |  1 | DB | 
| 3 | K7PJ8 | John | 2016-09-05 | 50000.00 |  2 | CR | 
| 4 | K7PJ7 | Rey | 2016-08-05 | 25000.00 |  1 | CR | 
+----+--------+------+------------+-----------+----------+------+ 

위의 MySQL 테이블에서 PHP를 사용하여 아래 표와 같이 표시하고 싶은 경우이 구문을 사용할 수 있습니까?MySQL에서 PHP 합계 및 표시 표

결과 :

deb_id에 의해 그룹화 한 후 공칭 합계
+--------+------+------------+------------+ 
| deb_id | name | nominal | residual | 
+--------+------+------------+------------+ 
| K7PJ8 | John | 100000.00 | 50000.00 | 
| K7PJ7 | Rey | 125000.00 | 100000.00 | 
+--------+------+------------+------------+ 

WHERE 유형 = (CR-DB)

+0

잔여량은 무엇입니까? – Igbaryya

+0

잔여 물은 공칭 - DB (차변)의 평균입니다. – Ferdian

답변

2
SELECT deb_id 
    , name 
    , SUM(CASE WHEN type = 'DB' THEN nominal ELSE 0 END) AS nominal 
    , SUM(CASE WHEN type = 'CR' THEN nominal ELSE 0 END) AS credit 
    , SUM(CASE WHEN type = 'DB' THEN nominal ELSE 0 END) - SUM(CASE WHEN type = 'CR' THEN nominal ELSE 0 END) AS residual 
    FROM myTable 
GROUP 
    BY deb_id 
    , name 

할 수 있습니다 당신이 별도의 두 가지로 그 값을 분리 할 경우 문 열.

+0

원래 응답을 수정했습니다. –

+0

다섯 번째 줄은 조금 이상하지만 그렇지 않으면 괜찮습니다. – Strawberry

+0

Excelent, 당신은 당신의 구문이 실제로 올바른지 내 나머지 오늘 밤 .. 저장했습니다 .. :) – Ferdian