Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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 选择列值作为SQL中的列标题?_Php_Mysql_Sql_Phpmyadmin - Fatal编程技术网

Php 选择列值作为SQL中的列标题?

Php 选择列值作为SQL中的列标题?,php,mysql,sql,phpmyadmin,Php,Mysql,Sql,Phpmyadmin,我有一张这样的桌子: ------------------------------------------------------ ID | Date | ClientName | TransactionAmount | ------------------------------------------------------ 1 | 6/16/13 | C1 | 15 | -------------------

我有一张这样的桌子:

------------------------------------------------------
ID  |   Date   |  ClientName  |  TransactionAmount   |
------------------------------------------------------
1   |  6/16/13 |  C1          |  15                  |
------------------------------------------------------
2   |  6/16/13 |  C1          |  10                  |
------------------------------------------------------
3   |  6/16/13 |  C2          |  10                  |
------------------------------------------------------
4   |  6/17/13 |  C2          |  20                  |
------------------------------------------------------
------------------------------------------------------------------------
Date    |  C1_Total_Amount_Transacted   |  C2_Total_Amount_Transacted  |
------------------------------------------------------------------------
6/16/13 |            25                 |              10              |
------------------------------------------------------------------------
6/17/13 |            0                  |              20              |
我想得到这样的东西:

------------------------------------------------------
ID  |   Date   |  ClientName  |  TransactionAmount   |
------------------------------------------------------
1   |  6/16/13 |  C1          |  15                  |
------------------------------------------------------
2   |  6/16/13 |  C1          |  10                  |
------------------------------------------------------
3   |  6/16/13 |  C2          |  10                  |
------------------------------------------------------
4   |  6/17/13 |  C2          |  20                  |
------------------------------------------------------
------------------------------------------------------------------------
Date    |  C1_Total_Amount_Transacted   |  C2_Total_Amount_Transacted  |
------------------------------------------------------------------------
6/16/13 |            25                 |              10              |
------------------------------------------------------------------------
6/17/13 |            0                  |              20              |
在第二个表中,日期是唯一的,并且数据库中有x个客户端 结果表将有x+1列(1个起始日期,每个客户端有x个)

可能需要编写一些PHP代码和更多查询,任何可行的解决方案 是完美的,我不需要完整的SQL解决方案


谢谢

我想您对SQL相当陌生。这种类型的查询需要条件求和。而且用SQL很容易表达:

select `date`,
       sum(case when Client_Name = 'C1' then TransactionAmount else 0 end) as C1,
       sum(case when Client_Name = 'C2' then TransactionAmount else 0 end) as C2
from t
group by `date`
但是,您必须列出查询中的每个客户机。您始终必须为SQL查询指定确切的列标题。如果不知道它们,则需要将SQL创建为字符串,然后单独执行。这是一个相当麻烦的过程

您通常可以通过使用
group\u concat()
来解决这个问题。这会将值放在一列中,并使用您选择的分隔符(默认值为逗号):


你试过什么吗?如果你表现出良好的尝试,并证明自己的困境(而不仅仅是要求一个完整的解决方案),你可能会得到更好的答案。