【发布时间】:2016-01-12 19:41:34
【问题描述】:
是否可以在不创建临时表的情况下对我的 sql SELECT 语句的结果进行分组以在一个语句中求和和分组?我有一个表格,其中保存了贷方帐号和借方帐号的借方和贷方金额的总和。 并为相反的字段输入零,我使用下面的联合选择语句创建了第一个 grouppage,我需要根据重复的帐户名称对输出求和 我可以很容易地得到这个还是必须加载它的临时表?我的选择语句如下
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
并且我想加入这些被削减的结果。
我试图避免使用临时表,但如果这是唯一可行的方法,我想了解更多关于以这种方式使用临时表的信息。
我也尝试过某种形式的加入和联合,但不满足条件,我也不知道该怎么做。
【问题讨论】:
-
除非
journal_drname中包含不寻常的字符,否则您的结果没有意义。 -
改写:为什么现金和银行的每个账户名的贷方和借方值都为 0?您提出的 SQL 否定了这种可能性。
-
是的,在这种情况下,我必须将帐户名加载到 journal_crname 中,如果相同的帐户名出现在借方中,我必须将其加载到 journal_crname 字段中,所以我有两个案例用于帐户名在外国帐户名称 journal_drname 和 journal_crname 上有两列加载