2017-02-20 15 views
-6

您好,我需要幫助,從行數據顯示在PHP的MySQL列 的原始數據是這樣的:PHP的MySQL秀行數據的列

date    bank    total 
---------------------------------------------- 
2017-02-01   BCA   2500000 
2017-02-01   CIMB   1500000 
2017-02-01   UOB   3750000 
2017-02-02   BCA   2100000 
2017-02-02   CIMB   3600000 
2017-02-02   UOB   2500000 

和我所期望的像這樣的輸出:

date   BCA   CIMB   UOB  TOTAL 
---------------------------------------------------------------- 
2017-02-01 2500000  1500000  3750000 7750000 
2017-02-02 2100000  3600000  2500000 8200000 

所以,如果您有任何的建議,讓一個PHP MySQL的代碼,請幫幫我,謝謝

+4

向我們展示你的代碼,你試過到目前爲止..和w問題是。 – JustBaron

+0

你聽說過查詢的權利? – Akintunde007

+2

可能的重複 - http://stackoverflow.com/questions/7674786/mysql-pivot-table –

回答

0

轉換行列被稱爲支點。 最常見的做法是使用GROUP BY和MAX或SUM等函數。

創建/插入查詢

CREATE TABLE t 
    (`date` DATE, `bank` VARCHAR(4), `total` INT) 
; 

INSERT INTO t 
    (`date`, `bank`, `total`) 
VALUES 
    ('2017-02-01', 'BCA', 2500000), 
    ('2017-02-01', 'CIMB', 1500000), 
    ('2017-02-01', 'UOB', 3750000), 
    ('2017-02-02', 'BCA', 2100000), 
    ('2017-02-02', 'CIMB', 3600000), 
    ('2017-02-02', 'UOB', 2500000) 
; 

查詢

SELECT 
    t.date 
, MAX(CASE WHEN t.bank = 'BCA' THEN t.total END) AS BCA 
, MAX(CASE WHEN t.bank = 'CIMB' THEN t.total END) AS CIMB 
, MAX(CASE WHEN t.bank = 'UOB' THEN t.total END) AS UOB 
, SUM(t.total) AS total 
FROM 
t 
GROUP BY 
t.date 
ORDER BY 
t.date ASC 

結果

date   BCA  CIMB  UOB total  
---------- ------- ------- ------- --------- 
2017-02-01 2500000 1500000 3750000 7750000 
2017-02-02 2100000 3600000 2500000 8200000 
+0

好的,感謝您的代碼,它非常有幫助,並修復了我的程序代碼,謝謝 – droid77