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



我有这个表(见下文),其中的行来自相同的"id"但是不同的"代码"资本/费用如下所示。需要能够生成一个对"值"求和的输出"资本代码"one_answers"费用代码"在两个单独的栏中。我尝试使用Where和Alias,但遇到了问题。我的数据视图表名:budgetcell_view我的数据文件如下所示:

tbody> <<tr>67788
projectid code codename fieldtypename value
601-00-000资本cost1325000
02-00-000费用cost1250000
01-00-000资本cost1200000
02-00-000费用cost1125000
01-00-000资本cost1400000
02-00-000费用cost1210000
901-00-000资本cost1550000
902-00-000费用cost1330000

在本例中,您可以简单地使用case when构造创建这样的查询:

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请注意,如果有更困难的选项(不仅仅是capital或expense),您可能需要扩展这个查询或修改它,这就是我要求您提供整个表数据的原因。

相关内容

  • 没有找到相关文章

最新更新