首页 > 解决方案 > 如何在 sql 或 power bi 中创建计算行?

问题描述

我正在尝试对我编写的 SQL 上的 2 行进行计算,这样我就可以有3 行作为利润并显示金额是否可能

这个虚拟数据对任何公司都不真实!

见下文 :

SELECT a.pcg_type GL_Acoount_Group,
     Abs(sum(b.debit-b.credit)) GL_Amount
FROM dolibarr.llx_accounting_account a
JOIN dolibarr.llx_accounting_bookkeeping b
  ON a.account_number = b.numero_compte
WHERE a.pcg_type IN ('INCOME', 'EXPENSE')
    ANDa.fk_pcg_version = 'PCG99-BASE'
GROUP BY a.pcg_type

结果:

团体。安特

收入 379200

费用 65700

预期成绩:

团体。安特

收入 379200

费用 65700

利润 313500

标签: mysqlsqlpowerbi

解决方案


使用 ROLLUP 添加额外的行,并在 SUM() 函数中使用 CASE 语句将费用值视为负数进行计算

--MySQL
SELECT COALESCE(acc_type, 'Profit') "Group"
     , ABS(SUM(CASE WHEN acc_type = 'EXPENSE' THEN -amount ELSE amount END)) amt
FROM test
GROUP BY acc_type WITH ROLLUP

使用 UNION ALL 的另一种方法

SELECT acc_type "Group"
     , SUM(amount) Amt
FROM test
GROUP BY acc_type

UNION ALL

SELECT 'Profit' AS "Group"
     , SUM(CASE WHEN acc_type = 'EXPENSE' THEN -amount ELSE amount END) Amt
FROM test

请检查此网址https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=f859036ffcb3d808330bce5346daee1e


推荐阅读