mysql - 如何在mysql中进行交叉表查询

标签 mysql crystal-reports

我正在使用 MySQL。这是我的 table

Level     Programmingtime    Clientname     projectid
0             128              abc             3
1             32               abc             3
2             126              abc             3
3             541              abc             3
4             452              abc             3
1             32               abc             3

但现在我必须以这样的格式在 Crystal 报表中显示这些数据

projectid  level0              level1      level2   level3   level4
3          128                 32+32=(64)     126      541      452
           (programmingtime)

请告诉我对于如此困难的逻辑我的语法是什么。

提前致谢。

最佳答案

由于级别已知,您可以简单地执行以下操作:

SELECT
    projectid,
    SUM(CASE WHEN level = 0 THEN programmingtime ELSE 0 END) AS level0,
    SUM(CASE WHEN level = 1 THEN programmingtime ELSE 0 END) AS level1,
    SUM(CASE WHEN level = 2 THEN programmingtime ELSE 0 END) AS level2,
    SUM(CASE WHEN level = 3 THEN programmingtime ELSE 0 END) AS level3,
    SUM(CASE WHEN level = 4 THEN programmingtime ELSE 0 END) AS level4
FROM
    tbl
GROUP BY
    projectid

关于mysql - 如何在mysql中进行交叉表查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11338598/

相关文章:

mysql - MYSQL中针对子查询的查询优化?

php - 将结果绑定(bind)到 php 数组中

reporting-services - 有没有办法在 Crystal 报告或 SSRS 中显示气球工具提示

mysql - 如何在 vs 2008 中使用 Crystal 报表

年份的 MySql 语句

mysql 安装 - 因依赖性错误而失败

asp.net - VS2012 Crystal Report 查看器组树隐藏

crystal-reports - 如何在 WiX 中检查 Crystal Reports for .NET Framework 4.0 安装

crystal-reports - Crystal 报表中的垂直文本对齐方式?

mysql - 如何选择一个表中的记录而不是另一个具有多个 PKID 的记录?