0

MySQLを使用しています。これは私が持っているテーブルです

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

しかし今、私はこのデータを次のような形式でCrystalReportに表示する必要があります

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

このような難しいロジックの構文はどうなるのか教えてください。

前もって感謝します。

4

1 に答える 1

2

レベルがわかっているので、次のようにすることができます。

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
于 2012-07-05T06:19:48.197 に答える