1

国、年、および各年の金額の表があります。特定の年の合計金額を合計して列として表示するクエリを作成しようとしています。

たとえば、次のような出力を作成します。

Country   1991     1992     1993
France     25       12       38

私はこのようなクエリを試しましたが、役に立ちませんでした:

SELECT 
     country as "Recipient", 
     SUM(usd_amount) AS "1991" WHEN project_year = 1991,
     SUM(usd_amount) AS "1992" WHEN project_year = 1992,
     SUM(usd_amount) AS "1993" WHEN project_year = 1993

FROM tb1

GROUP BY project_year, country
order by country, project_year

助言がありますか?ありがとう!クリス

4

2 に答える 2

0

これを試してみてください:

SELECT 
     country as "Recipient", 
     SUM(if(project_year = 1991, usd_amount, 0)) AS "1991",
     SUM(if(project_year = 1992, usd_amount, 0)) AS "1992",
     SUM(if(project_year = 1993, usd_amount, 0)) AS "1993",
FROM tb1
GROUP BY country
ORDER BY country

PS:すでに集計しているので、プロジェクトの年ごとに注文するのは意味がありません。

于 2012-04-09T06:20:09.657 に答える
0

次を試してください

SELECT 
     country as "Recipient", 
     SUM(case WHEN project_year = 1991 then usd_amount else 0 end) AS "1991" ,
     SUM(case WHEN project_year = 1992 then usd_amount else 0 end) AS "1992" ,
     SUM(case WHEN project_year = 1993 then usd_amount else 0 end) AS "1993" 

FROM tb1

GROUP BY country, project_year
order by country, project_year
于 2012-04-09T06:22:35.460 に答える