Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php mysql将行数据显示到列_Php_Mysql - Fatal编程技术网

php mysql将行数据显示到列

php mysql将行数据显示到列,php,mysql,Php,Mysql,您好,我需要帮助显示数据从行到列在php mysql 原始数据如下所示: date bank total ---------------------------------------------- 2017-02-01 BCA 2500000 2017-02-01 CIMB 1500000 2017-02-01 UOB

您好,我需要帮助显示数据从行到列在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代码的建议,请帮助我,
谢谢

将行转换为列被称为pivot。 最常用的方法是使用GROUPBY和函数,如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  

向我们展示你的代码,你到目前为止尝试了什么..以及问题是什么。你听说过查询,对吗?可能重复的堆栈溢出不是教程网站,请从谷歌搜索php mysql教程并从中学习。好的,谢谢你的代码,非常有用,并修复我的程序代码,谢谢