易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL Server中pivot and unpivot的用法 (行列互转)

 .Pivot的用法体会:
语句范例:
select PN,[2006/5/30] as [20060530],[2006/6/2] as [20060602]
from consumptiondata a
Pivot (sum(a.M_qty) FOR a.M_date in ([2006/5/30],[2006/6/2])) as PVT 
order by PN
 
Table结构 Consumptiondata (PN,M_Date,M_qty)
order by PN可要可不要,并不重要,只是排序的作用
 
关键的是红色部分,解析如下,select 大家都知道,PN是 ConsumptionData表中的一个Column,
[2006/5/30]也是一个Column,他需要显示成[20060530],注意[2006/5/30]不是一个Value,而是一个Column.[2006/6/2]与[2006/5/30]一样.
Pivot ( ........... ) as PVT这个结构是固定格式,没有什么需要特殊说明的,当然PVT随便你给他一个 NICKNAME ,it doesn't make any differences.
sum(a.M_qty) 是我们希望显示出来的值,注意这个地方必须用汇总函数,否则语法不会过.
FOR a.M_date in ([2006/5/30],[2006/6/2])for 表示汇总的值要显示在哪一个Column下面
如果我们想让Sum(M_qty)显示在PN转换的Column下面,则可写为For PN, in 的清单表示我们关注哪些要查看的Column,注意再次强调是Column,不是Value. in的清单是Column清单,不是Value清单,是M_date的Value转换成的Column清单. 
 
2.UnPivot
--此段可以直接在Sql 2005中执行
CREATE TABLE pvt (VendorID int, Emp1 int, Emp2 int,
Emp3 int, Emp4 int, Emp5 int)
GO
INSERT INTO pvt VALUES (1,4,3,5,4,4)
INSERT INTO pvt VALUES (2,4,1,5,5,5)
INSERT INTO pvt VALUES (3,4,3,5,4,4)
INSERT INTO pvt VALUES (4,4,2,5,5,4)
INSERT INTO pvt VALUES (5,5,1,5,5,5)
GO
--select * from PVT
--Unpivot the table.
SELECT VendorID, Employee, Orders
from PVT
UNPIVOT (
 Orders FOR Employee IN ([Emp1], [Emp2], [Emp3], [Emp4], [Emp5])
)AS unpvt
GO


相关文档:

ASP.Net + SQL Server 存储过程实现分页排序

问题提出:
在应用程序中经常需要查询数据。当查询结果数据量比较大的时候,检索结果、界面显示都需要花费大量的时间。为了避免这个问题,应该每次只检索部分数据,也就是使用常见的分页方式来处理。分页的问题在asp.net中好像非常简单,只要在GridView中启用分页就可以了。启用分页后,GridView关联数据源控件,依旧会加载 ......

使用Hibernate+MySql+native SQL的BUG,以及解决办法

本来是mssql+hibernate+native SQL 应用的很和谐
但是到了把mssql换成mysql,就出了错(同样的数据结构和数据)。
查询方法是:
String sql =
"select id XXX_ID from t_tab";
List<Map> list = session.createSQLQuery(sql)
.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP)
.list();
错 ......

sql的 INNER JOIN, left join,right join语法

inner join(等值连接) 只返回两个表中联结字段相等的行
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
INNER JOIN 语法:
INNER JOIN 连接两个数据表的用法:
SELECT * from 表1 INNER JOIN 表2 ON 表1.字段号=表2 ......

SQL自动删除备份文件

DECLARE  @sql varchar(8000)  
--下面是删除15天前备份文件的处理  
set @sql='Del E:\Databasebackup\'  
@sql=@sql +rtrim(convert(varchar,getdate()-15,112))+'.bak'
Exec  master..xp_cmdshell   @sql  
DECLARE @DelFile Varchar(256)
set ......

powerDesigner生成sql和反向生成ER图的问题

一、PowerDesigner生成sql问题
生成sql的方法是 Database -->Generate Database (Ctrl + G ) 但是提示
Generation aborted due to errors detected during the verification of the model.
解决方法: 将check model 去掉就可以了.其中,one file on是否需要按照表生成许多个sql(默认选上,即不需要)
  & ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号