我有一个由并集连接的查询,它分别在行中给我提供了理想的结果我想连接这两行并添加它的值,但我不知道该怎么做查询是
SELECT
`b`.`main_code`,
`b`.`account_title`,
SUM(CASE
WHEN
`a`.`type` = 'CP'
AND `a`.`interactive_person` = '6'
AND `a`.`date` BETWEEN '2018-02-12' AND '2018-07-31'
THEN
`a`.`balance`
ELSE 0
END) AS `credit`,
SUM(CASE
WHEN
`a`.`type` = 'CR'
AND `a`.`interactive_person` = '6'
AND `a`.`date` BETWEEN '2018-02-12' AND '2018-07-31'
THEN
`a`.`balance`
ELSE 0
END) AS `debit`,
SUM(CASE
WHEN
`a`.`type` = 'CR'
AND `a`.`interactive_person` = '6'
AND `a`.`date` BETWEEN '2018-02-12' AND '2018-07-31'
THEN
`a`.`balance`
WHEN `a`.`type` = 'CP' THEN - 1 * `a`.`balance`
ELSE 0
END) AS `balance`
FROM
`vouchers` AS `a`,
`data` AS `b`
WHERE
`a`.`interactive_person` = '6'
AND `a`.`post_status` = 'yes'
AND `a`.`interactive_person` = `b`.`main_code`
AND `a`.`date` BETWEEN '2018-02-12' AND '2018-07-31'
UNION SELECT
`b`.`main_code`,
`b`.`account_title`,
IFNULL(SUM(`a`.`debit`), 0) AS `debit`,
IFNULL(SUM(`a`.`credit`), 0) AS `credit`,
(`debit` - `credit`) AS `balance`
FROM
`journal_vouchers` AS `a`,
`data` AS `b`
WHERE
`a`.`account_id` = '44'
AND `a`.`date` BETWEEN '2018-02-12' AND '2018-07-31'
AND `post_status` = 'yes'
AND `cancel_status` = 'off'
AND `a`.`account_id` = `b`.`account_code`
GROUP BY `b`.`main_code`;
这个查询有点复杂,让我解释一下:这个查询从3个表中获取结果,但最主要的是,在并集之前,它从两个表中获取结果,在并集之后,从其中一个表中获取两个表的结果 data
与两者互动。总之,我得到的结果是
+-----------+---------------+--------+-------+---------+
| main_code | account_title | credit | debit | balance |
+-----------+---------------+--------+-------+---------+
| 6 | cash account | 5200 | 520 | -4680 |
+-----------+---------------+--------+-------+---------+
| 6 | cash account | 0 | 200 | -200 |
+-----------+---------------+--------+-------+---------+
我想完整的查询分组的主代码,但我不知道它我想要的结果是什么
6 | cash account | 5200 | 320 | -4880
暂无答案!
目前还没有任何答案,快来回答吧!