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

SQL SERVER中ROLLUP 运算符的用法

问题的提出: 
现有表A,内容如下:
编码   仓库    数量
01      A       6
01      B       7
02      A       8
02      B       9
 
现在想按编码查询出这种格式:
--------------------
01      A       6
01      B       7
汇总小计:     13
02      A       8
02      B       9
汇总小计:     17
 
问:该如何实现?
 
 
        乍一看,好像很容易,用group by好像能实现?但仔细研究下去,你又会觉得group by也是无能为力,总欠缺点什么,无从下手。那么,到底该如何做呢?别急,SQL Server早就帮我们做好了,下面,跟我来。
        首先,让我们来看一段话:
在生成包含小计和合计的报表时,ROLLUP 运算符很有用。ROLLUP 运算符生成的结果集类似于 CUBE 运算符所生成的结果集。
========================
CUBE 运算符生成的结果集是多维数据集。多维数据集是事实数据的扩展,事实数据即记录个别事件的数据。扩展建立在用户打算分析的列上。这些列被称为维。多维数据集是一个结果集,其中包含了各维度的所有可能组合的交叉表格。
 
CUBE 运算符在 SELECT 语句的 GROUP BY 子句中指定。该语句的选择列表应包含维度列和聚合函数表达式。GROUP BY 应指定维度列和关键字 WITH CUBE。结果集将包含维度列中各值的所有可能组合,以及与这些维度值组合相匹配的基础行中的聚合值。
========================= 
 
CUBE 和 ROLLUP 之间的区别在于: 
 
CUBE 生成的结果集显示了所选列中值的所有组合的聚合。
 
ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合。
 &n


相关文档:

Linq to SQL Like Operator(转载)


As a response for customer's question, I decided to write about using Like Operator in Linq to SQL queries.
Starting from a simple query from Northwind Database;
var query = from c in ctx.Customers
            where c.City == "London"
&nbs ......

SQL Server 中的查询通知 (ADO.NET)

查询通知是在 Microsoft SQL Server 2005 中以及 ADO.NET 2.0 的 System.Data.SqlClient 命名空间中引入的。查询通知建立在 Service Broker 基础结构的基础上,使应用程序可以在数据更改时收到通知。如果应用程序提供数据库中信息的缓存(例如 Web 应用程序),需要在源数据更改时接收通知,此功能特别有用。
通过三种方式 ......

通过HTTP访问SQL Server Analysis Service 2005

目的:通过HTTP访问MS SSAS 2005
配置方法:
如果想访问对应的cube,则需指定cube所在的服务器名称
使之可以通过HTTP协议进行访问,可以返回MDX查询所得到的结果集和元数据
查询结果集的方法是:Execute(),它能够返回MDX语句的查询结果
查询结果集元数据方法:Discover(),它能够返回MDX语句的元数据信息。该方法较Ex ......

[SQL Server] 存储过程事务

在存储过程中使用事务,以下为模板:
CREATE PROCEDURE testPro
AS
/**//* ------- 事务开始---------- */
BEGIN TRANSACTION tran_test
/**//* -------- 保存事务----------*/
SAVE TRANSACTION tran_test
/**//* -------- 数据操作---------*/
INSERT [table1] ( [content] ) VALUES ( '43332' )
/**//*---- ......

Sql Server convert日期转换函数应用

Sql Server 中一个非常强大的日期格式化函数
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GE ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号