是否可以对我的sql SELECT语句的结果进行分组而不创建临时表以对一条语句进行求和和分组?我有一张表格,保存贷方帐户号和借方帐户号的借方和贷方总额。
并为相反的字段输入零,我在下面的联合选择语句下进行了第一个分组,我需要根据重复的帐户名称对输出求和
我可以轻松地获得相同的结果,还是必须加载它的临时表?我的选择声明如下
select journal_drname AS ACCNAME, sum(amount) AS DEBT,0 as CREDIT
FROM JOURNAL GROUP BY journal_drname
UNION select journal_crname AS ACCNAME, 0 as DEBT,sum(amount) AS
CREDIT,
FROM JOURNAL GROUP BY journal_crname
返回数据,如:
ACCNAME DEBIT CREDIT
-------- ------- ------
CASH 0 1,000
CASH 900 0
CASH 300 0
BANK 200 0
BANK 400 0
我可以在上方总结以下几项:
ACCNAME DEBIT CREDIT
-------- ------- ------
CASH 200 0
BANK 600 0
我想将这些结果与上述相同。
我试图避免使用临时表,但是,如果这是唯一可行的方法,那么我想了解更多有关以这种方式使用临时表的信息。
我也尝试过进行某种形式的联接和联合,但不满足条件,而且我也不知道该怎么做。
最佳答案
正如您所说的那样,查询工作正常,让我们将联合查询称为表格
( ...... ) myTable
然后只需创建一个子查询即可获得最后一步
SELECT ACCNAME,
CASE WHEN SUM(CREDIT - DEBT) < 0 THEN - SUM(CREDIT - DEBT)
ELSE 0
END DEBT,
CASE WHEN SUM(CREDIT - DEBT) > 0 THEN SUM(CREDIT - DEBT)
ELSE 0
END CREDIT
FROM ( ...... ) myTable
GROUP BY ACCNAME