【问题标题】:How to transform results of an sql query to an html table with specific format如何将 sql 查询的结果转换为具有特定格式的 html 表
【发布时间】:2015-02-20 13:32:57
【问题描述】:

我正在尝试为图书馆预订系统创建一些统计数据。我的 sql 查询结果如下所示。

total_no_students|部门 |房产 |月
 241 |物理学 |本科 |十一月
 236 |物理学 |本科 |十二月
 254 |物理学 |研究生 |十一月
 210 |物理学 |研究生 |十二月
 193 |建筑|本科 |十一月
 181 |建筑|本科 |十二月
 127 |建筑|研究生 |十一月
 292 |建筑|研究生 |十二月
 134 |生物学 |本科 |十一月
 188 |生物学 |本科 |十二月
 129 |生物学 |研究生 |十一月
 219 |生物学 |研究生 |十二月

我正在尝试使用 php 编写一些代码以创建具有以下外观的统计表:

 |物理本科|物理研究生|建筑本科|建筑研究生|
十一月 | 241 | 254 | 193 | 127 |
十二月 | 236 | 210 | 181 | 292 |

任何帮助如何使用 php 将查询转换为上表?非常感谢!

【问题讨论】:

标签: mysql sql select group-by pivot


【解决方案1】:

试试这个:

SELECT A.month, 
       SUM(CASE WHEN A.department = 'Physics' AND A.property = 'undergraduate' THEN A.total_no_students ELSE 0 END) AS Physics_undergraduate, 
       SUM(CASE WHEN A.department = 'Physics' AND A.property = 'postgraduate' THEN A.total_no_students ELSE 0 END) AS Physics_postgraduate, 
       SUM(CASE WHEN A.department = 'Architecture' AND A.property = 'undergraduate' THEN A.total_no_students ELSE 0 END) AS Architecture_undergraduate, 
       SUM(CASE WHEN A.department = 'Architecture' AND A.property = 'postgraduate' THEN A.total_no_students ELSE 0 END) AS Architecture_postgraduate, 
       SUM(CASE WHEN A.department = 'Biology' AND A.property = 'undergraduate' THEN A.total_no_students ELSE 0 END) AS Biology_undergraduate, 
       SUM(CASE WHEN A.department = 'Biology' AND A.property = 'postgraduate' THEN A.total_no_students ELSE 0 END) AS Biology_postgraduate
FROM (...Your Existing Query...) AS A 
GROUP BY A.month

【讨论】:

  • 谢谢萨拉什!问题是第一个结构不是表,而是我的 sql 查询的结果。
  • 我想要一个类似循环的东西,以便用 php 创建上面的 html 表!
  • 第一个结构是多个表的多个连接的结果!!它不仅仅是一张桌子的结构!!所以我想我不能使用你的解决方案!我错了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-27
  • 2019-09-19
  • 2012-12-18
  • 2021-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多