-- 会员表 CREATE TABLE T_MEMBER ( MEMBER_ID CHAR(02) PRIMARY KEY, MEMBER_NAME VARCHAR(20) ) -- 商品表 CREATE TABLE T_PRODUCT ( PRODUCT_ID CHAR(02) PRIMARY KEY, PRODUCT_NAME VARCHAR(20) ) -- 订单表 CREATE TABLE T_ORDER ( ORDER_ID INT PRIMARY KEY, MEMBER_ID CHAR(02), PRODUCT_ID CHAR(02), QTY INT ) -- 插入会员信息 INSERT INTO T_MEMBER VALUES ('M1', '张一') INSERT INTO T_MEMBER VALUES ('M2', '张二') INSERT INTO T_MEMBER VALUES ('M3', '张三') INSERT INTO T_MEMBER VALUES ('M4', '张四') INSERT INTO T_MEMBER VALUES ('M5', '张五') -- 插入商品信息 INSERT INTO T_PRODUCT VALUES ('P1', '自行车') INSERT INTO T_PRODUCT VALUES ('P2', '相机') INSERT INTO T_PRODUCT VALUES ('P3', '笔记本') -- 插入订单信息 INSERT INTO T_ORDER VALUES (1, 'M1', 'P1', 1) INSERT INTO T_ORDER VALUES (2, 'M2', 'P2', 2) INSERT INTO T_ORDER VALUES (3, 'M3', 'P1', 1) INSERT INTO T_ORDER VALUES (4, 'M3', 'P1', 1) INSERT INTO T_ORDER VALUES (5, 'M2', 'P3', 1) INSERT INTO T_ORDER VALUES (6, 'M1', 'P2', 3) INSERT INTO T_ORDER VALUES (7, 'M3', 'P1', 1) INSERT INTO T_ORDER VALUES (8, 'M1', 'P1', 2) INSERT INTO T_ORDER VALUES (9, 'M2', 'P3', 1) INSERT INTO T_ORDER VALUES (10, 'M1', 'P2', 1) GO -- 会员 + 商品 统计 SELECT T2.MEMBER_NAME 会员名称, T3.PRODUCT_NAME 商品名称, SUM(T1.QTY) 数量 FROM T_ORDER T1 INNER JOIN T_MEMBER T2 ON T1.MEMBER_ID = T2.MEMBER_ID INNER JOIN T_PRODUCT T3 ON T1.PRODUCT_ID = T3.PRODUCT_ID GROUP BY T2.MEMBER_NAME, T3.PRODUCT_NAME
-- 会员 + 商品种类(行转列) 统计 -- 商品名称字段中的值转换成字段名称 SELECT * FROM ( SELECT T2.MEMBER_NAME 会员名称, T3.PRODUCT_NAME 商品名称, SUM(T1.QTY) 数量 FROM T_ORDER T1 INNER JOIN T_MEMBER T2 ON T1.MEMBER_ID = T2.MEMBER_ID INNER JOIN T_PRODUCT T3 ON T1.PRODUCT_ID = T3.PRODUCT_ID GROUP BY T2.MEMBER_NAME, T3.PRODUCT_NAME) T PIVOT (SUM(数量) FOR 商品名称 IN([笔记本], [相机], [自行车])) AS PVT
相关推荐
本书首先会介绍T-SQL的基础概念,包括SELECT语句的基本用法,如何从一个或多个表中检索数据,以及如何使用WHERE子句过滤结果。接下来,会深入探讨更高级的查询技巧,如联接(JOIN)操作,用于合并来自不同表的数据;...
T-SQL(Transact-SQL)是Microsoft SQL Server使用的SQL方言,它扩展了标准SQL的功能,为数据库操作提供了更多的灵活性和控制能力。本书第一章介绍了T-SQL的基础概念,包括数据类型、变量、流程控制语句等内容。通过...
这些基本操作是T-SQL的基石,理解它们的用法和组合是每个数据库开发者的必修课。 2. **聚合函数与分组**:GROUP BY和HAVING子句用于数据汇总,COUNT、SUM、AVG、MIN和MAX等聚合函数则用于计算统计信息。 3. **联接...
- **数据聚合**:掌握GROUP BY、HAVING子句以及聚合函数如SUM()、AVG()等的使用方法。 - **透视转换**:了解如何使用PIVOT和UNPIVOT操作对数据进行转换,实现灵活的数据展示需求。 - **TOP和APPLY操作**:通过...
10. **变量和动态SQL**:T-SQL支持声明和使用变量,以及构建和执行动态SQL,这在处理不确定的或运行时决定的查询结构时非常有用。 11. **XML和JSON支持**:SQL Server支持直接处理XML和JSON数据,提供了解析、查询...
T-SQL提供了处理集合的方法,如FOR XML、PIVOT和UNPIVOT等,使得数据转换更为灵活。 1.2 委托、事件(自定义事件) 在.NET Framework中,委托允许你将方法作为参数传递,而事件则是对象间通信的一种方式。SQL ...
本文将详细解析如何使用T-SQL进行行转列操作,以及涉及的相关知识点。 首先,我们创建了一个名为`DB`的数据库,然后创建了两个表格:`Scores`和`Student`。`Scores`表格存储学生的科目成绩,包含`ID`(自增标识)、`...
### T-SQL经典编程之行转列与列转行技巧详解 #### 一、T-SQL 行转列 ...以上就是T-SQL中行转列和列转行的具体实现方法。这些方法不仅可以帮助我们更好地组织和展示数据,而且对于复杂的数据分析和报告也非常重要。
在IT行业中,数据库管理是至关重要的,而Microsoft SQL Server(简称MS SQL Server)作为一款广泛使用的商业关系数据库管理系统,其专业性与复杂性都要求技术人员具备扎实的理论基础和实践经验。针对“ms-sqlserver...
T-SQL中的联接操作是将两个或多个表的数据合并在一起的关键方法,包括内连接、外连接和交叉连接。"Chapter 03 - Joins - Solutions.sql"展示了如何使用JOIN子句将不同表中的数据关联,以便进行更复杂的分析和报告。...
《Microsoft SQL Server 2008技术内幕:T-SQL查询》是一本深入探讨SQL Server 2008中T-SQL(Transact-SQL)查询的权威书籍。T-SQL是SQL Server的主要编程语言,用于执行数据操作、管理数据库以及创建复杂的存储过程...
通过PIVOT操作,T-SQL不再需要编写复杂的动态SQL语句,而是可以直接利用PIVOT语法来实现相同的结果,提高了编写查询的便捷性和可读性。 5. 通用表表达式(CTE)是“Yukon”中引入的新特性之一,它类似于临时表,但...
《SQL Server工具教程》是一份全面且实用的学习资料,它涵盖...通过《SQL Server工具教程》,读者将能够深入理解这些工具的使用方法,提升数据库管理、开发和分析能力,从而更好地驾驭SQL Server这个强大的数据库系统。
`建立分页Table.sql`, `2005分页.sql`可能讲解了SQL Server 2005中实现数据分页的新方法。在大型数据集上,分页查询可以提高性能并提供更好的用户体验。SQL Server 2005引入了ROW_NUMBER()函数,配合TOP和...
在T-SQL(Microsoft SQL Server的查询语言)中,PIVOT是通过一种特殊的语法实现的。例如,如果我们有一个销售数据表,记录了每个季度的销售额,我们可以使用PIVOT将季度字段的值转换为列,这样每个年度对应的四个...
T-SQL(Transact-SQL)是微软SQL Server所使用的扩展SQL语言,它提供了丰富的数据处理功能,包括行转列。在SQL Server中,有两种主要的方法可以实现这一转换: 1. 使用CASE语句: CASE语句是SQL中一个非常强大的...
本篇将详细讲解如何使用Pivot功能对数据进行行列转换,并通过实例代码展示其具体用法。 首先,我们需要理解Pivot的基本概念。在SQL Server中,Pivot操作是Transact-SQL的一个特性,它允许我们将一个表中的值从行...
5. **Transact-SQL (T-SQL)**:深入学习T-SQL语法,包括SELECT语句的高级用法、INSERT、UPDATE、DELETE语句,以及存储过程、触发器和事务的使用。 6. **视图与查询优化**:掌握如何创建和使用视图来简化数据访问,...
除此之外,SQL Server 2005还增强了CTE(公用表表达式)功能,允许使用PIVOT和UNPIVOT运算符,这进一步提升了查询的灵活性和表达能力。CTE提供了一种方式,让开发者能够临时命名一个结果集,并且在查询中引用它。...