需要帮助将来自同一字段的多行数据合并到具有别名的多列中

Need help combining multiple row data from same field, into multiple columns with alias

我有这个 table(见下文),其中的行来自相同的“id”但不同的“代码”Capital/Expense,如下所示。 需要能够生成一个输出,将两个单独列中资本代码和费用代码的“值”相加。我尝试使用 Where 和 Alias 但 运行 遇到问题。 我的数据视图 table 名称:budgetcell_view 我的数据文件如下图:

projectid code coodename fieldtypename value
6 01-00-000 capital cost1 325000
6 02-00-000 expense cost1 250000
7 01-00-000 capital cost1 200000
7 02-00-000 expense cost1 125000
8 01-00-000 capital cost1 400000
8 02-00-000 expense cost1 210000
9 01-00-000 capital cost1 550000
9 02-00-000 expense cost1 330000

我想要的输出如下....任何帮助将不胜感激:

projectid capital_value expense_value
6 325000 250000
7 200000 125000
8 400000 210000
9 550000 330000

在这种特定情况下,您可以简单地使用 case when construct 创建这样的查询:

SELECT projectid, 
SUM(CASE WHEN code = '01-00-000' THEN value ELSE 0 END) capital_value,
SUM(CASE WHEN code != '01-00-000' THEN value ELSE 0 END) expense_value
FROM table1
GROUP BY projectid ORDER BY projectid;

请在此处查看工作示例:db<>fiddle 请注意,如果有更困难的选项(不仅是资本或费用),您可能需要扩展或修改此查询,这就是为什么我要求您提供完整的 table 数据。