sqlserverpivot
‘壹’ sql动态多行转列,PIVOT怎么能转两列
动态最好用存储过程(年月不确定,列名不确定),对sql进行拼接,再写一个第二条语句关于办结的,然后把这个受理与办结通过事项进行关联查询得到两列结果就好
‘贰’ SQLSERVER PIVOT和UNPIVOT操作
在SQL中,PIVOT和UNPIVOT操作用于数据转置,将行转换为列(PIVOT)或将列转换为行(UNPIVOT),主要用于数据分析和报告。PIVOT操作将特定列的多个唯一值转换为多个列,通常用于聚合数据并重新排列为行和列的矩阵。假设有一个名为EmployeeSales的表,记录不同员工在不同季度的销售额。我们利用PIVOT操作将Quarter列的值转换为多个列,并对每个季度的SalesAmount进行求和,结果如下,可以轻松比较不同员工在不同季度的业绩。UNPIVOT操作则是PIVOT的逆操作,它将列转换为行,适用于将PIVOT操作生成的矩阵格式数据转换回原始格式。以刚才的PIVOT操作结果为例,使用UNPIVOT操作将数据转换回原始格式,结果恢复为原始格式。PIVOT和UNPIVOT是SQL中的强大工具,帮助我们适应不同的分析和报告需求。PIVOT用于创建聚合数据的交叉表,而UNPIVOT则用于将交叉表转换回长格式数据,掌握这些操作可以大大提高处理和分析数据的灵活性。
‘叁’ SQLServer2005中PIVOT的和值计算!
select id,name,a.一季度,b.二季度,c.三季度,d.四季度,e.汇总 from
(select id,name,sum(profile) 一季度 where quarter=1 group by id,name) a,
(select id,name,sum(profile) 二季度 where quarter=2 group by id,name) b,
(select id,name,sum(profile) 三季度 where quarter=3 group by id,name) c,
(select id,name,sum(profile) 四季度 where quarter=4 group by id,name) d,
(select id,name,sum(profile) 汇总 group by id,name) e,
where e.id=a.id and e.name=a.name
and e.id=b.id and e.name=b.name
and e.id=c.id and e.name=c.name
and e.id=d.id and e.name=d.name
‘肆’ sqlserver中如何使用pivot,达到如下效果急死小弟了!
要使用sum函数
如果是你这样的字符串,应该是用转换NULL到"",然后用字符串拼接函数
希望对你有帮助
http://wenku..com/link?url=ga06E6mVVxFw-_gG1ZPr07uf5SHhjLDY-xeyRft1ifCLKHDwYDrWEoxS