首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用SQL (MySQL)将表格展平为带详细信息的汇总报告

用SQL (MySQL)将表格展平为带详细信息的汇总报告
EN

Stack Overflow用户
提问于 2013-05-08 01:49:29
回答 2查看 772关注 0票数 0

是否可以使用sql (mysql)来展平报表的数据库表。我可以用php来做,但如果我能用sql做得更简单就好了。

示例:

1)输入:原始数据-每个客户/开始和结束时间一行

代码语言:javascript
复制
cust   start   end
8000   0900    1000
8000   1000    1100
8000   1200    1300
9000   0900    1000
9000   1000    1100

2)所需输出:数据展平-每个客户一行,所有开始和结束时间都在同一行上

代码语言:javascript
复制
cust  all related start-end times
----  ------------------------------
8000  0900-1000 1000-1100 1200-1300
9000  0900-1000 1000-1100 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-08 02:14:43

这就是您要查找的内容:

代码语言:javascript
复制
select cust, group_concat(concat(start,'-',end) SEPARATOR ' ')
from mytable
group by cust

请参阅working fiddle

票数 1
EN

Stack Overflow用户

发布于 2013-05-08 02:16:09

SQL查询必须具有固定数量的列。这在您的情况下会带来问题,因为您不知道需要多少列。

一种解决方法是将所有结果放在一列中。这将产生类似于'090-1000,1000-1100,1200-1300‘的结果。您可以使用group_concat()实现这一点

代码语言:javascript
复制
select cust,
       group_concat(concat(start, '-', end) separator ', ' order by start) as StartEnds
from t
group by cust
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16425423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档