`

交叉表 sql

    博客分类:
  • sql
阅读更多

1.静态交叉表(mysql)

         SELECT FItemID, (CASE WHEN   FName= '生产部' THEN FAuxQty ELSE ENDAS '生产部', 
      (
CASE  WHEN  FName= '包装车间' THEN FAuxQty ELSE ENDAS '
包装车间', 
      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

    ### Oracle交叉表SQL知识点解析 #### 一、交叉表(Pivot Table)概念与应用场景 在数据分析领域,交叉表(Pivot Table)是一种常见的数据整理技术,它将原始数据按照特定维度进行重组,使得数据从行式存储变为列式...

    交叉表的语法动态交叉的sql语句

    交叉表的语法,动态交叉的sql语句交叉表的语法,动态交叉的sql语句 交叉表的语法,动态交叉的sql语句交叉表的语法,动态交叉的sql语句

    sql server 生成交叉表

    ### SQL Server 生成交叉表 在SQL Server中生成交叉表是一种常见的需求,特别是在进行数据分析时。本文将通过一个具体的例子来详细介绍如何利用SQL Server生成交叉表,并解释代码中的每一个步骤。 #### 标题:SQL ...

    SQL动态交叉表,希望对SQL程序员有帮助

    在SQL编程中,动态交叉表查询是一种非常实用的技术,它能够帮助我们以表格形式展示多维度数据,使得数据更易理解和分析。交叉表,又称作透视表或转置表,通常用于将行与列的数据位置互换,或者将某一列的数据作为新...

    SQL Server交叉表的客户端实现方案.pdf

    SQL Server交叉表的客户端实现方案主要探讨的是如何在SQL Server数据库系统中,通过客户端应用程序来实现交叉表查询,这是在数据分析和报表展示中常见的需求。交叉表,又称透视表,可以将原始数据按照多个维度进行...

    在Sql Server 数据库中利用存储过程实现动态交叉表

    本文将探讨如何在SQL Server数据库中利用存储过程实现动态交叉表。 首先,我们需要理解交叉表的基本概念。在数据分析和报表生成中,交叉表是一种以行列交叉形式展示数据统计结果的表格,通常用于展示分类数据的汇总...

    sql实现交叉表的一个很好例子

    根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要介绍了一个使用 SQL 实现交叉表的例子。下面将对此案例进行详细解读,并从中提炼出相关的 SQL 知识点。 ### SQL 实现交叉表的知识点 #### 1. **...

    sqlserver 交叉表通用存储

    根据提供的信息,我们可以深入探讨SQL Server中的交叉表通用存储技术及其应用。交叉表查询是一种将行数据转换为列数据的方法,常用于报表处理等场景。接下来,我们将详细解析标题、描述以及部分代码所涉及的关键概念...

    在Sql Server数据库中利用存储过程实现动态交叉表.pdf

    "在Sql Server数据库中利用存储过程实现动态交叉表.pdf" 本文主要讲述了在Sql Server数据库中利用存储过程实现动态交叉表的技术。交叉表是一种特殊的表格形式,它可以将数据按照某种规则进行转换和重新组织,以便更...

    sql交叉表中是使用

    ### SQL Server 中交叉表的使用及遇到的小问题 在 SQL Server 中,交叉表(Pivot Table)是一种将一列中的数据转换为多列的方式,从而实现数据的汇总、分析等功能。这种方式非常适合处理需要进行维度变换的数据场景...

    SQL Server中交叉表查询的研究.pdf

    SQL Server中交叉表查询的研究.pdf

    交叉表查询sql语句

    交叉表查询SQL语句 交叉表查询是一种常用的SQL查询方法,它可以将多个表中的数据联合起来,并将结果呈现出来。在本文中,我们将学习如何使用交叉表查询来解决实际问题。 交叉表查询的基本概念 交叉表查询是指在一...

    SqlServer mssql 交叉查询,横表变纵表

    sql server 交叉查询, 查询结果交叉表,横表变纵表

    sql2000交叉表实例

    ### SQL Server 2000 交叉表实例详解 在SQL Server 2000中,创建交叉表是一项常见的需求,特别是在处理具有多个维度的数据时。例如,在统计各个销售员在全国各省份的客户数量时,我们需要将每个销售员的数据放在一...

    数据分层汇总交叉报表SQL语句实现方法

    1. **交叉汇总对照表**:这个表用于定义数据的汇总方式。它通常包含两个字段,一个是原始数据的代码(如费用代码),另一个是汇总分类代码(如费用汇总类别)。例如,我们可以创建一个视图`FIN_COM_FEECODESTAT`,...

    C#动态交叉表查询

    4. **SQL Server Pivot功能**:如果你的数据存储在SQL Server中,可以使用SQL的PIVOT关键字直接在数据库层面完成交叉表查询。然后在C#中只需执行这个SQL语句即可获取结果。 5. **Entity Framework**:如果你使用...

    iReport柱状图和交叉表画法

    交叉表的制作同样使用上一步中提到的数据源和SQL语句。在组件面板中将交叉表拖到报表的“Summary”区域,并开始配置。首先选择数据源,点击“下一步”。然后设置行分组,选择手机的品牌(Brand),列分组选择销售...

    数据库的交叉表、左链接

    在SQL中,可以使用SQL的CASE语句或PIVOT操作(某些数据库系统如Oracle支持)来实现交叉表查询。例如,如果我们有一个销售数据表,包含产品、地区和销售额信息,我们可能想要按地区展示每个产品的销售额。通过交叉表...

Global site tag (gtag.js) - Google Analytics