“UNION ALL”不能将“列”完全一样的记录合并吗???
如下图:
问题一:如上图,“第一条记录”和“第三条记录”是使用“UNION ALL”关联起来的,而且这两条记录的列名完全一致。为什么这两条记录不会合并起来呢?
同时,将“01”、“02”、“03”、“04”、“05”、“06”、“07”、“08”、“10”、“11”、“12”列的数值加起来求和,作为合并后的记录的值。
问题二:“UNION ALL”不支持这样的功能吗? 如果要实现这样的功能应该怎么办??? 用什么方法,有实例可以参考吗?
------解决方案--------------------
union 才是合并一样的
------解决方案--------------------
UNION ALL 合并的时候不会去重复 使用UNION会去掉重复数据
------解决方案--------------------
- SQL code
SELECT buildingno ,buildingname,buildingfunction,circuittype,unit,SUM([01]) [01],.....后面同理FROM (SELECT buildingno ,buildingname,buildingfunction,circuittype,unit,ISNULL([01],0) [01].....后面同理FROM 表WHERE 第一条数据UNION ALL SELECT buildingno ,buildingname,buildingfunction,circuittype,unit,ISNULL([01],0) [01].....后面同理FROM 表WHERE 第三条数据)aGROUP BY buildingno ,buildingname,buildingfunction,circuittype,unit
------解决方案--------------------
union all 只是做为将多个不相关的记录集合并成一个记录集,如果想达到你说的效果把 合并后的记录集 做为一个子表,再进行分组 group by 就能达到你说的效果了
例如
select p1,p2,p3,sum(p4) as p4,sum(p5) as p5
from (
select p1,p2,p3,p4,p5
union all
select p1,p2,p3,p4,p5
) t1
group by p1,p2,p3
------解决方案--------------------
用SUM求和就可以了。
------解决方案--------------------
------解决方案--------------------
不用写的这么细把,如果有 null 值,在union all 时,用isnull 判断一下呗
------解决方案--------------------
回复要有责任,等下报错了还来找你麻烦,来来回回多伤神。做程序员就要严谨啊~~~~,经验教训。不解释
------解决方案--------------------
------解决方案--------------------