江湖救急,“UNION ALL”的疑问?
“UNION ALL”不能将“列”完全一样的记录合并吗???
如下图:
问题一:如上图,“第一条记录”和“第三条记录”是使用“UNION ALL”关联起来的,而且这两条记录的列名完全一致。为什么这两条记录不会合并起来呢?
同时,将“01”、“02”、“03”、“04”、“05”、“06”、“07”、“08”、“10”、“11”、“12”列的数值加起来求和,作为合并后的记录的值。
问题二:“UNION ALL”不支持这样的功能吗? 如果要实现这样的功能应该怎么办??? 用什么方法,有实例可以参考吗?
[解决办法]
union 才是合并一样的
[解决办法]
UNION ALL 合并的时候不会去重复 使用UNION会去掉重复数据
[解决办法]
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求和就可以了。
[解决办法]