Office中国论坛/Access中国论坛

标题: 联合查询问题 union [打印本页]

作者: cynourse    时间: 2020-7-9 12:03
标题: 联合查询问题 union
从一个数据源中取某些列进行数据重组,我在使用UNION的时候,执行第一个语句金额正确,联合查询二个语句的时候,第二个语句取的金额是没问题的,但是之前第一个语句中的金额变了,这个是什么问题?怎么解决


select 公积金 as 科目说明,"RMB" as 货币编号,"D" as [借/贷],公司住房合计 as 原值金额,"1" as 汇率,公司住房合计  as 等值金额,"01"  as 分析类别1,分析编号01 as 分析编号1, 3A as 事业部,"02" as 分析类别2,分析编号02 as 分析编号2,3AB as 部门 from 工资源1  union
select "应付职工薪酬-工资"  as 科目说明,"RMB"  as 货币编号,"C"  as [借/贷],sum(工资应发_(不含调整项))  as 原值金额,"1"  as 汇率,sum(工资应发_(不含调整项)) as 等值金额,null  as 分析类别1,null as 分析编号1,null as 事业部,null as 分析类别2,null as 分析编号2,null as 部门 from 工资源1


作者: cynourse    时间: 2020-7-9 16:52
我又测试了下 应该是最后加的WHERE语句导致的,我只在最后一句后面加了where语句,而没有在每个UNION前加where,是不是即使条件语句相同,也要在每个UNION前加where才可以?
作者: zyp    时间: 2020-7-11 09:29
肯定的,union只是将前后两条SQL查询的结果集进行并集操作,如果两个结果集有数据相同的行,还得用UNION ALL,不然并集结果不包含重复的行(重复的只显示一个),

ORDER BY只能有一个,且要写在最后一个SQL查询后面,表示并集结果按这个来排序
作者: lingjiang    时间: 2021-8-13 22:00
学习





欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3