SQL - 将数据转换为日期/来源/值“网格”

时间:2009-04-29 01:20:08

标签: sql mysql

我在MYSQL数据库中有数据如下所示:

Project    Date         Time
A          2009-01-01   15
A          2009-01-02   10
B          2009-01-02   30
A          2009-01-09   15
C          2009-01-07   5

我想从这些数据中产生输出:

Date         Project A Time     Project B Time    Project C Time
2009-01-01   15                 0                 0
2009-01-02   10                 30                0
2009-01-07   15                 0                 5 

可以使用SQL查询完成,还是需要编写外部脚本来通过数据库进行迭代并组织输出?

(另外,如果有人对主题行有更好的建议,请告诉我,我会编辑问题;我不确定描述当前和所需格式的正确术语,这会使搜索此信息难)

3 个答案:

答案 0 :(得分:1)

您正在寻找pivot / crosstab支持。这是一个很好的链接。

http://en.wikibooks.org/wiki/MySQL/Pivot_table

答案 1 :(得分:1)

我相信这叫做Pivot表。只需谷歌吧。

答案 2 :(得分:1)

我一直在寻找类似的东西,并找到了一个完美运行的MySQL存储过程:

http://forums.mysql.com/read.php?98,7000,250306#msg-250306

您正在寻找的结果可以通过以下简单的调用获得:

调用pivotwizard('date','project','time','from_table','where_clause')