php - 计算 1 列中的项目并将其分成两列

标签 php mysql

我有两个表,数据和代理数据。

数据(agentid、SimCardNumber、ProductName、Agentemail)

agentdata (id,agentid,产品名称)

目前我只处理两种产品,我想按代理电子邮件分组查看此列表

agentemail    |  Product1  |  Total1   |  Product2  |  Total2
-----------------------------------------------------------
abc@gmail.com |  ball      |   5       |  bat       |  0

我尝试了此查询,但无法并排显示两个产品及其计数。

SELECT a.agentid,  d.Agentemail, a.ProductName, COUNT(a.ProductName) AS Total  
FROM  data AS d, agentdata AS a 
WHERE d.agentid=a.agentid
GROUP BY a.ProductName

最佳答案

SQL 并不是为处理此类并行事务而构建的。它适用于行,您希望它显示列。

您的原始查询应GROUP BY agentid, ProductName以将代理从产品总数中分离出来。

如果您知道只有两种产品而没有更多,则可以编写一个查询来并排显示这两种产品。如果您添加第三种产品,则不会包含该产品。

SELECT a.agentid,  d.Agentemail, 
    'ball' AS Product1, 
    SUM(IF(a.ProductName = 'ball', 1, 0)) AS Total1,  
    'bat' AS Product2, 
    SUM(IF(a.ProductName = 'bat', 1, 0)) AS Total2,  
FROM  data AS d, agentdata AS a 
WHERE d.agentid=a.agentid
GROUP BY agentid

这种查询对于快速检查数据来说是可以的,但是您的前端应该使用更可靠的查询并在那里构建表。

关于php - 计算 1 列中的项目并将其分成两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18299535/

相关文章:

php - 从mysql中的当前日期获取过去的所有7个日期

mysql - 我也可以让 WHERE col LIKE '%' 选择 NULL 值吗?

PHP : How to pass get value in url

javascript - 为什么服务器端和客户端脚本不能交互?

mysql语句用于查找具有最高计数值的单词

php - 查询获取人员相关(数据透视表)

Mysql查询空白数据

php - Doctrine 2 和 Zend Framework 2.2 的数据库名称注释

php - 使用 PHP 将 DESCRIBE TABLE Postgres 导出到 .txt 文件

php - 通过PHP上传图片到SVN,元数据存储到多个数据库