group by m.meterno,m.metertype,m.Unit,m.meterusetype,m.regionno,m.buildingfunction,m.buildingno,m.usedepartment,V.SN,V.DD) as P
pivot (sum(P.sumqty) for P.DD in ([01],[02],[03],[04],[05],[06],[07],[08],[09],[10],[11],[12] )) as AA/*AA*/
UNION ALL
问题一:“pivot”的作用是什么???怎样用???
个人理解:把一个字段值“P.sumqty”,按照另一个字段“P.DD”,将其分出来,由“P.DD”中在
([01],[02],[03],[04],[05],[06],[07],[08],[09],[10],[11],[12] )范围内的,担任字段名称。
问题二:“UNION ALL”的作用是什么,怎样进行连接的,把“两条记录”和在一起。还是怎么着???
------解决方案--------------------
pivot 是SQL2005特有的一个表运算符、你也可以像你那样理解。你不需要为它显示地指定分组元素,也就是不需要用到GROUP BY 建议楼主去看看透视转换
Union All 转换将多个输入组合到一个输出中
------解决方案--------------------
- SQL code
1. [url=http://yuxuan2029.blog.163.com/blog/static/1946153362009915113935552/]sql中PIVOT 用法详解[/url]2.union all,解释为联合所有Union解释为联合union或者Union all实现把前后两个select集合的数据联合起来,组成一个结果集查询输出。这就要求联合前后的结果集,需要分别有相同的输出字段的数目,并且对应的字段类型要相同。SELECT column1, column2 from table1union (all)select column1, column2 from table2以上语句要求量表的column1字段类型相同,column2类型相同。而且每个查询的数目都是一样的。UNION ALL和UNION的差别就在ALL上面,第一个叫联合所有,说明会显示前后两个查询所有的数据,而UNION没有ALL(所有)这个单词,实现将前后两个查询的数据联合到一起后,去掉重复的数据显示。比如SELECT COLUMN1 FROM TABLE1的结果是123 SELECT COLUMN1 FROM TABLE2的结果是156分别都是三行,那么UNION ALL的结果就是6行123156而UNION会过滤掉上述结果中1的重复一行,结果是12356五行结果
------解决方案--------------------
pivot是行转列或者列转行时用的
union或者Union all实现把前后两个select集合的数据联合起来,组成一个结果集查询输出。