zoukankan      html  css  js  c++  java
  • Sql基本学习二

    1.行列转换

    图1

    把图1的行转换为图2的列

    使用2005自带函数 PIVOT

    PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现

    PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P

    完整语法:

    table_source

    PIVOT(

    聚合函数(value_column

    FOR pivot_column

    IN(<column_list>)

    )

     

    UNPIVOT用于将列明转为列值(即列转行),在SQL Server 2000可以用UNION来实现

    完整语法:

    table_source

    UNPIVOT(

    value_column

    FOR pivot_column

    IN(<column_list>)

    )

    View Code
      WITH  ProductTable
    AS ( SELECT VPIV.ProductID ,
    DF.DataID ,
    DirectionDrugNum = SUM(VCPSD.DirectionDrugNum)
    FROM dbo.VProductInfoView VPIV ,
    dbo.[UF_XA_GetDatePartTable_21](2, '2011-01-01',
    '2011-12-31') DF ,
    dbo.VCustomerProStockDetail VCPSD
    WHERE VPIV.ProductID = VCPSD.ProductID
    AND VCPSD.CustomerStockType = 0
    AND VCPSD.BizDate >= DF.BeginDate
    AND VCPSD.BizDate < DF.EndDate
    GROUP BY VPIV.ProductID ,
    DF.DataID
    )
    SELECT ProductID ,
    [1] AS 一月 ,
    [2] AS 二月 ,
    [3] AS 三月 ,
    [4] AS 四月 ,
    [5] AS 五月 ,
    [6] AS 六月 ,
    [7] AS 七月 ,
    [8] AS 八月 ,
    [9] AS 九月 ,
    [10] AS 十月 ,
    [11] AS 十一月 ,
    [12] AS 十二月 ,
    ISNULL([1], 0) + ISNULL([2], 0) + ISNULL([3], 0) + ISNULL([4], 0)
    + ISNULL([5], 0) + ISNULL([6], 0) + ISNULL([7], 0) + ISNULL([8], 0)
    + ISNULL([9], 0) + ISNULL([10], 0) + ISNULL([11], 0) + ISNULL([12],
    0) AS 累计
    FROM ( SELECT VPIV.ProductID ,
    VPIV.ProName ,
    VPIV.ProStandard ,
    VPIV.FactoryName ,
    PT.DataID ,
    PT.DirectionDrugNum
    FROM dbo.VProductInfoView VPIV
    LEFT JOIN ProductTable PT ON VPIV.ProductID = PT.ProductID
    ) A PIVOT
    ( SUM(A.DirectionDrugNum) FOR A.DataID IN ( [1], [2], [3], [4], [5], [6],
    [7], [8], [9], [10], [11], [12] ) ) AS pvt ;

    实现效果:

  • 相关阅读:
    minecraft我的世界汇总网站
    扫雷网页版
    扫雷模型(非完全一样)
    设计模式-策略模式
    hadoop(2)hadoop配置
    hadoop(1)入门
    Openssl
    加密解密
    信息安全通信
    Web
  • 原文地址:https://www.cnblogs.com/ywblog/p/2305226.html
Copyright © 2011-2022 走看看