需要帮助将来自同一字段的多行数据合并到具有别名的多列中
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 数据。
我有这个 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 数据。