1.静态交叉表(mysql)
SELECT FItemID, (CASE WHEN FName= '生产部' THEN FAuxQty ELSE 0 END) AS '生产部',
(CASE WHEN FName= '包装车间' THEN FAuxQty ELSE 0 END) AS '包装车间',
FStockID, FDeptID
FROM testtable
-----------------------------------------------------------------------------------------------------
http://blog.csdn.net/ACMAIN_CHM/archive/2009/06/19/4283943.aspx
SELECT
IFNULL(c1,'total') AS total,
SUM(IF(c2='B1',c3,0)) AS B1,
SUM(IF(c2='B2',c3,0)) AS B2,
SUM(IF(c2='B3',c3,0)) AS B3,
SUM(IF(c2='B4',c3,0)) AS B4,
SUM(IF(c2='total',c3,0)) AS total
FROM (
SELECT c1,IFNULL(c2,'total') AS c2,SUM(c3) AS c3
FROM tx
GROUP BY c1,c2
WITH ROLLUP //这个似乎能汇总 列上的汇总
HAVING c1 IS NOT NULL
) AS A
GROUP BY c1
WITH ROLLUP;
(2)
select c1,
sum(if(c2='B1',C3,0)) AS B1,
sum(if(c2='B2',C3,0)) AS B2,
sum(if(c2='B3',C3,0)) AS B3,
sum(if(c2='B4',C3,0)) AS B4,SUM(C3) AS TOTAL
from tx
group by C1
UNION
SELECT 'TOTAL',sum(if(c2='B1',C3,0)) AS B1,
sum(if(c2='B2',C3,0)) AS B2,
sum(if(c2='B3',C3,0)) AS B3,
sum(if(c2='B4',C3,0)) AS B4,SUM(C3) FROM TX
;
(3)
select ifnull(c1,'total'),
sum(if(c2='B1',C3,0)) AS B1,
sum(if(c2='B2',C3,0)) AS B2,
sum(if(c2='B3',C3,0)) AS B3,
sum(if(c2='B4',C3,0)) AS B4,SUM(C3) AS TOTAL
from tx
group by C1 with rollup ;
(4) 动态,适用于列不确定情况
SET @EE='';
SELECT @EE:=CONCAT(@EE,'SUM(IF(C2=\'',C2,'\'',',C3,0)) AS ',C2,',') FROM (SELECT DISTINCT C2 FROM TX) A;
SET @QQ=CONCAT('SELECT ifnull(c1,\'total\'),',LEFT(@EE,LENGTH(@EE)-1),' ,SUM(C3) AS TOTAL FROM TX GROUP BY C1 WITH ROLLUP');
PREPARE stmt2 FROM @QQ;
EXECUTE stmt2;
-----------------------------------------------------------------
- 大小: 67.3 KB
分享到:
相关推荐
### Oracle交叉表SQL知识点解析 #### 一、交叉表(Pivot Table)概念与应用场景 在数据分析领域,交叉表(Pivot Table)是一种常见的数据整理技术,它将原始数据按照特定维度进行重组,使得数据从行式存储变为列式...
交叉表的语法,动态交叉的sql语句交叉表的语法,动态交叉的sql语句 交叉表的语法,动态交叉的sql语句交叉表的语法,动态交叉的sql语句
### SQL Server 生成交叉表 在SQL Server中生成交叉表是一种常见的需求,特别是在进行数据分析时。本文将通过一个具体的例子来详细介绍如何利用SQL Server生成交叉表,并解释代码中的每一个步骤。 #### 标题:SQL ...
在SQL编程中,动态交叉表查询是一种非常实用的技术,它能够帮助我们以表格形式展示多维度数据,使得数据更易理解和分析。交叉表,又称作透视表或转置表,通常用于将行与列的数据位置互换,或者将某一列的数据作为新...
SQL Server交叉表的客户端实现方案主要探讨的是如何在SQL Server数据库系统中,通过客户端应用程序来实现交叉表查询,这是在数据分析和报表展示中常见的需求。交叉表,又称透视表,可以将原始数据按照多个维度进行...
本文将探讨如何在SQL Server数据库中利用存储过程实现动态交叉表。 首先,我们需要理解交叉表的基本概念。在数据分析和报表生成中,交叉表是一种以行列交叉形式展示数据统计结果的表格,通常用于展示分类数据的汇总...
根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要介绍了一个使用 SQL 实现交叉表的例子。下面将对此案例进行详细解读,并从中提炼出相关的 SQL 知识点。 ### SQL 实现交叉表的知识点 #### 1. **...
根据提供的信息,我们可以深入探讨SQL Server中的交叉表通用存储技术及其应用。交叉表查询是一种将行数据转换为列数据的方法,常用于报表处理等场景。接下来,我们将详细解析标题、描述以及部分代码所涉及的关键概念...
"在Sql Server数据库中利用存储过程实现动态交叉表.pdf" 本文主要讲述了在Sql Server数据库中利用存储过程实现动态交叉表的技术。交叉表是一种特殊的表格形式,它可以将数据按照某种规则进行转换和重新组织,以便更...
### SQL Server 中交叉表的使用及遇到的小问题 在 SQL Server 中,交叉表(Pivot Table)是一种将一列中的数据转换为多列的方式,从而实现数据的汇总、分析等功能。这种方式非常适合处理需要进行维度变换的数据场景...
SQL Server中交叉表查询的研究.pdf
交叉表查询SQL语句 交叉表查询是一种常用的SQL查询方法,它可以将多个表中的数据联合起来,并将结果呈现出来。在本文中,我们将学习如何使用交叉表查询来解决实际问题。 交叉表查询的基本概念 交叉表查询是指在一...
sql server 交叉查询, 查询结果交叉表,横表变纵表
### SQL Server 2000 交叉表实例详解 在SQL Server 2000中,创建交叉表是一项常见的需求,特别是在处理具有多个维度的数据时。例如,在统计各个销售员在全国各省份的客户数量时,我们需要将每个销售员的数据放在一...
1. **交叉汇总对照表**:这个表用于定义数据的汇总方式。它通常包含两个字段,一个是原始数据的代码(如费用代码),另一个是汇总分类代码(如费用汇总类别)。例如,我们可以创建一个视图`FIN_COM_FEECODESTAT`,...
4. **SQL Server Pivot功能**:如果你的数据存储在SQL Server中,可以使用SQL的PIVOT关键字直接在数据库层面完成交叉表查询。然后在C#中只需执行这个SQL语句即可获取结果。 5. **Entity Framework**:如果你使用...
交叉表的制作同样使用上一步中提到的数据源和SQL语句。在组件面板中将交叉表拖到报表的“Summary”区域,并开始配置。首先选择数据源,点击“下一步”。然后设置行分组,选择手机的品牌(Brand),列分组选择销售...
在SQL中,可以使用SQL的CASE语句或PIVOT操作(某些数据库系统如Oracle支持)来实现交叉表查询。例如,如果我们有一个销售数据表,包含产品、地区和销售额信息,我们可能想要按地区展示每个产品的销售额。通过交叉表...