我有以下 SQL 语句:
SELECT id + 100000000000000000 AS id,
a.external_code + CAST(id AS varchar(15)) as crUniqueId,
m.check_amount,
'C' as crType,
m.postprint_date as activationDate,
m.postprint_date as creationDate,
m.memo_explanation as reasonLine1,
m.check_no,
m.check_amount - sh.sumAmount As dispositionAmount
FROM md_master m
Join accounts a on m.account_tag = a.acct_id
LEFT JOIN (SELECT master_id,
SUM(md_cr_pending.current_amount) as sumAmount
FROM md_cr_pending
Group BY master_id) sh ON master_id = m.ID
WHERE (m.postprint_tag = 2) OR (m.postprint_tag = 4) OR
(m.postprint_tag = 5) OR (m.postprint_tag = 7)
UNION ALL
SELECT id + 200000000000000000 as id,
'PERCHK' + CAST(id AS varchar(15)) as crUniqueId,
check_amount,
'P' as crType,
business_date as activationDate,
business_date as creationDate,
identify_description as reasonLine1,
check_no,
check_amount - sh.sumAmount As dispositionAmount
FROM cd_personal_checks
LEFT JOIN (SELECT cd_personal_checks_id,
SUM(md_cr_pending.current_amount) as sumAmount
FROM md_cr_pending
Group BY cd_personal_checks_id) sh
ON sh.cd_personal_checks_id = cd_personal_checks.ID
我想在 UNION 的每个 select 语句中添加一个附加列。但是,我需要使用作为上一列创建的别名。
例如。我想做以下事情
m.check_amount - sh.sumAmount As dispositionAmount, m.check_amount-dispositionAmount AS openBalance
和
check_amount - sh.sumAmount As dispositionAmount, check_amount-dispositionAmount AS openBalance
分别
这可以做到吗?目前,按照我上面的做法,我得到一个“无效的列名'dispositionAmount'”
谢谢