多列的行列转换(PIVOT,UNPIVOT)
VUIU.png)



SELECT [Week] AS [Date],[Total] AS WeeklyTotal
,[Monday]
,[Tuesday]
,[Wednesday]
,[Thursday]
,[Friday]
,[Saturday]
,[Sunday]
FROM
(
SELECT [Date],Data,[Week]
FROM
(
SELECT A.Date
--CONVERT(VARCHAR(5),A.Date,101) AS [Date]
,CONVERT(VARCHAR(20),A.NewVIPCounts) AS 新注册会员-- NewVIPCounts
,CONVERT(VARCHAR(20),B.ShoppingVIPCounts) AS 消费会员数-- ShoppingVIPCounts
,CONVERT(VARCHAR(20),ROUND(CONVERT(NUMERIC,C.TotalSaleAmount),0)) AS 总销售额-- TotalSaleAmount
,CONVERT(VARCHAR(20),ROUND(CONVERT(NUMERIC,D.VIPSaleAmount),0)) AS 会员销售-- VIPSaleAmount
,CONVERT(VARCHAR(20),E.VIPBillCounts) AS 会员小票数-- VIPBillCounts
,CONVERT(VARCHAR(20),F.TotalBillCounts) AS 总小票数--TotalBillCounts
,CONVERT(VARCHAR(20),G.FirstBuyCounts) AS 初次购买会员数
,非会员小票数=CONVERT(VARCHAR(20),(F.TotalBillCounts-E.VIPBillCounts) )
,会员销售比重=CONVERT(VARCHAR(20),CONVERT(VARCHAR(20),ROUND(CONVERT(FLOAT,(D.VIPSaleAmount/C.TotalSaleAmount)),3)*100)+'%')
,非会员小票客单价=CONVERT(VARCHAR(20),ROUND(CONVERT(NUMERIC,((C.TotalSaleAmount-D.VIPSaleAmount)/(F.TotalBillCounts-E.VIPBillCounts))),0))
,会员小票客单价=CONVERT(VARCHAR(20),ROUND(CONVERT(NUMERIC,(D.VIPSaleAmount/E.VIPBillCounts)),0))
,会员小票数占比=CONVERT(VARCHAR(20),CONVERT(VARCHAR(20),ROUND(CONVERT(FLOAT,(CONVERT(NUMERIC,E.VIPBillCounts)/CONVERT(NUMERIC,F.TotalBillCounts))),3)*100)+'%')
,初次购买会员数占比=CONVERT(VARCHAR(20),CONVERT(VARCHAR(20),ROUND(CONVERT(FLOAT,(CONVERT(NUMERIC,G.FirstBuyCounts)/CONVERT(NUMERIC,B.ShoppingVIPCounts))),3)*100)+'%')
FROM #T1 A
JOIN #T2 B ON A.Date=B.Date
JOIN #T3 C ON B.Date=C.Date
JOIN #T4 D ON C.Date=D.Date
JOIN #T5 E ON D.Date=E.Date
JOIN #T6 F ON E.Date=F.Date
JOIN #T7 G ON F.Date=G.Date
)AS X
UNPIVOT (
Data FOR [Week]
IN(
新注册会员,消费会员数,总销售额,会员销售,非会员小票客单价,非会员小票数
,会员小票客单价,会员小票数
,总小票数,会员销售比重,初次购买会员数,会员小票数占比,初次购买会员数占比
)
)AS Y
) AS p
PIVOT
(
Max(p.Data) FOR [Date] IN([Monday],[Tuesday],[Wednesday],[Thursday],[Friday],[Saturday],[Sunday],[Total])
) AS uu
多列的行列转换(PIVOT,UNPIVOT)的更多相关文章
- SQL Server中行列转换 Pivot UnPivot
SQL Server中行列转换 Pivot UnPivot PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PI ...
- SQL Fundamentals: 子查询 || 行列转换(PIVOT,UNPIVOT,DECODE),设置数据层次(LEVEL...CONNECT BY)
SQL Fundamentals || Oracle SQL语言 子查询(基础) 1.认识子查询 2.WHERE子句中使用子查询 3.在HAVING子句中使用子查询 4.在FROM子句中使用子查询 5 ...
- SQL Server中行列转换 Pivot UnPivot
PIVOT用于将列值旋转为列名(即行转列),在SQLServer 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列)FOR 列 in (-) )AS P 完 ...
- SQLServer中行列转换Pivot UnPivot
PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P ...
- 【转】Spark实现行列转换pivot和unpivot
背景 做过数据清洗ETL工作的都知道,行列转换是一个常见的数据整理需求.在不同的编程语言中有不同的实现方法,比如SQL中使用case+group,或者Power BI的M语言中用拖放组件实现.今天正好 ...
- sql行列转换PIVOT与unPIVOT
基本语法 select * from Mould pivot ( count(ID)for ProductTypeCode in ( [FC], [RCU], [RCD] )) as PVT; wit ...
- 通过sql做数据透视表,数据库表行列转换(pivot和Unpivot用法)(一)
在mssql中大家都知道可以使用pivot来统计数据,实现像excel的透视表功能 一.MSsqlserver中我们通常的用法 1.Sqlserver数据库测试 ---创建测试表 Create tab ...
- SQL中行列转换Pivot
--建表 ),课程 ),分数 int) --插入数据 ) ) ) ) ) ) 1.静态行转列(确定有哪些列) select 姓名, end)语文, end)数学, end)物理 from tb gro ...
- 行列转换 pivot
select * from ( select isnull(c.type,'其他') type,d from ( select ID,Record_code,code,day(thedate) d f ...
随机推荐
- iOS获取图片的Base64String,兼容Android,java,web,jpg(jpeg),png
呃呃呃……需求的来源又是同学,对!又是! 废话不哆嗦,怎么把一张图在iOS上转一个Base64String出来,稍微了解的,或者随便搜一下,都能搞定一大堆,但是!!!! 自己(iOS)转自己用,完全没 ...
- PendingIntent的Flags
PendingIntent是一个Intent的描述.包装,给予了这个PendingIntent 的组件在指定的事件发生或指定的时间到达时启动Activty.Service或者Broadcast. 根据 ...
- .rdp 文件参数详解
Overview of .rdp file settings Setting Type Default value Description and possible values Settable f ...
- Duplex Service in WCF(CodeProject上的)
Duplex Service in WCF In WCF, a service can call back to its clients. That is to say that, at the ti ...
- -_-#【邮件】qq邮箱不显示图片
干货分享之邮件营销QQ邮箱IP白名单服务申请
- apple ID的重要性
当手机丢失时,您可以将对应的产品码提供给运营商,提高找回丢失手机的可能性. 2.去App store下载“查找我的iPhone(Find My iPhone)”,立刻安上,用你的app ...
- Java Web中web.xml的作用
每一个javaWeb工程都有一个web.xml配置文件,那么他到底有什么作用呢?它是每一个web工程都必的必须的吗? web.xml文件是用来初始化工程配置信息的,比如说welcome页面,fil ...
- Tree2cycle
Problem Description A tree with N nodes and N-1 edges is given. To connect or disconnect one edge, w ...
- JavaScript 设计风格&模式 概览 20140418
基本的概念 在JavaScript中,一旦定义好一个变量,该变量会自动成为内置对象的一个属性,(如果该变量是全局变量,那么会成为全局对象的一个属性). 定义的变量实际上也是一个伪类,拥有自身的属性,该 ...
- CSS3 概览 更新时间 2014-0412-1317
CSS3 概览 CSS3可以划分为:文字.边框模型.背景.动画等. CSS3颜色模块 CSS2.1的时候可以使用4种颜色方式,直接使用颜色名,如 redRGB值,如 rgb(0,90,255)RGB百 ...