用pivot行转列遇到的问题 [问题点数:40分,结帖人wangdaye1993]

Bbs1
本版专家分:15
结帖率 100%
Bbs8
本版专家分:45897
Blank
红花 2017年3月 VB大版内专家分月排行榜第一
2016年12月 VB大版内专家分月排行榜第一
2016年5月 VB大版内专家分月排行榜第一
2016年1月 VB大版内专家分月排行榜第一
2015年12月 VB大版内专家分月排行榜第一
2015年11月 VB大版内专家分月排行榜第一
2015年10月 MS-SQL Server大版内专家分月排行榜第一
2015年9月 VB大版内专家分月排行榜第一
2015年9月 MS-SQL Server大版内专家分月排行榜第一
2015年8月 VB大版内专家分月排行榜第一
2015年8月 MS-SQL Server大版内专家分月排行榜第一
2015年7月 VB大版内专家分月排行榜第一
2015年7月 MS-SQL Server大版内专家分月排行榜第一
2015年6月 VB大版内专家分月排行榜第一
2015年5月 VB大版内专家分月排行榜第一
2015年4月 VB大版内专家分月排行榜第一
2015年3月 VB大版内专家分月排行榜第一
2015年2月 VB大版内专家分月排行榜第一
2014年11月 VB大版内专家分月排行榜第一
2014年9月 VB大版内专家分月排行榜第一
2014年8月 VB大版内专家分月排行榜第一
2014年7月 VB大版内专家分月排行榜第一
2013年7月 VB大版内专家分月排行榜第一
2013年4月 VB大版内专家分月排行榜第一
2010年2月 VB大版内专家分月排行榜第一
2010年1月 VB大版内专家分月排行榜第一
2009年11月 VB大版内专家分月排行榜第一
2009年9月 VB大版内专家分月排行榜第一
2009年8月 VB大版内专家分月排行榜第一
2009年7月 VB大版内专家分月排行榜第一
2009年4月 VB大版内专家分月排行榜第一
2009年3月 VB大版内专家分月排行榜第一
2009年2月 VB大版内专家分月排行榜第一
2009年1月 VB大版内专家分月排行榜第一
2008年6月 VB大版内专家分月排行榜第一
2007年12月 VB大版内专家分月排行榜第一
2007年10月 VB大版内专家分月排行榜第一
2007年9月 VB大版内专家分月排行榜第一
Blank
黄花 2016年11月 VB大版内专家分月排行榜第二
2016年1月 MS-SQL Server大版内专家分月排行榜第二
2015年12月 MS-SQL Server大版内专家分月排行榜第二
2015年11月 MS-SQL Server大版内专家分月排行榜第二
2015年5月 MS-SQL Server大版内专家分月排行榜第二
2015年4月 MS-SQL Server大版内专家分月排行榜第二
2015年1月 VB大版内专家分月排行榜第二
2015年1月 MS-SQL Server大版内专家分月排行榜第二
2014年12月 VB大版内专家分月排行榜第二
2014年11月 MS-SQL Server大版内专家分月排行榜第二
2014年9月 MS-SQL Server大版内专家分月排行榜第二
2013年8月 VB大版内专家分月排行榜第二
2013年6月 VB大版内专家分月排行榜第二
2013年5月 VB大版内专家分月排行榜第二
2010年4月 VB大版内专家分月排行榜第二
2010年3月 VB大版内专家分月排行榜第二
2008年12月 VB大版内专家分月排行榜第二
2008年8月 VB大版内专家分月排行榜第二
2008年7月 VB大版内专家分月排行榜第二
2007年11月 VB大版内专家分月排行榜第二
Blank
蓝花 2017年1月 MS-SQL Server大版内专家分月排行榜第三
2015年6月 MS-SQL Server大版内专家分月排行榜第三
2015年3月 MS-SQL Server大版内专家分月排行榜第三
2015年2月 MS-SQL Server大版内专家分月排行榜第三
2014年12月 MS-SQL Server大版内专家分月排行榜第三
2014年10月 VB大版内专家分月排行榜第三
2014年10月 MS-SQL Server大版内专家分月排行榜第三
2014年8月 MS-SQL Server大版内专家分月排行榜第三
2013年9月 VB大版内专家分月排行榜第三
2013年3月 VB大版内专家分月排行榜第三
2012年5月 VB大版内专家分月排行榜第三
2012年4月 VB大版内专家分月排行榜第三
2010年10月 VB大版内专家分月排行榜第三
2010年8月 VB大版内专家分月排行榜第三
2010年7月 VB大版内专家分月排行榜第三
2009年5月 VB大版内专家分月排行榜第三
2008年9月 VB大版内专家分月排行榜第三
2008年4月 VB大版内专家分月排行榜第三
2008年2月 VB大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs1
本版专家分:72
关于pivot函数,转列问题
[img=https://img-bbs.csdn.net/upload/201605/29/1464511683_759221.png][/img]rn对于上面的这个表,我希望进<em>行</em><em>行</em><em>转列</em>,然后我用了语句: rnSELECT * FROM [PhaseWork] rn <em>pivot</em>(rn workrn for rn name rn IN (现有,演示,阶段1,阶段2,阶段3)rn ) as arnrnrn但执<em>行</em>失败了,谁能拯救我
PIVOT转列问题,高手进
[b]<em>行</em><em>转列</em>怎么显示内容?而不是统计数量[/b]rn比如说成绩表:姓名,考试月份,科目,成绩:rnname month subject scorern张三 2012-09 数学 80rn张三 2012-09 语文 30rn张三 2012-09 英语 30rn李四 2012-09 英语 45rn李四 2012-09 语文 34rn张三 2012-10 化学 10rn王五 2012-10 物理 30rnrn现在只能够统计:rn[code=sql] select * from rn (select * from exam) p PIVOT( max(score) for subject in ([数学],[语文],[英语],[物理],[化学]))rn as pvt[/code]rn=========================================================rnname month 数学 语文 英语 物理 化学rn李四 2012-09 NULL 34 45 NULL NULLrn张三 2012-09 80 30 30 NULL NULLrn王五 2012-10 NULL NULL NULL 30 NULLrn张三 2012-10 NULL NULL NULL NULL 10rn=========================================================rn如果成绩是字符串呢,这个效果如何实现:rnname month 数学 语文 英语 物理 化学rn李四 2012-09 NULL 很菜 一般 NULL NULLrn张三 2012-09 很好 很好 较差 NULL NULLrn王五 2012-10 NULL NULL NULL 很菜 NULLrn张三 2012-10 NULL NULL NULL NULL 很菜
转列的问提!pivot
在我学习了http://topic.csdn.net/u/20080725/13/8cb20d0c-ff73-4447-b43c-6dc2ec2b81c0.html?seed=729847596&r=60413391#r_60413391rn这个帖子以后我对我的数据进<em>行</em>了练习帮我看看是哪里出错了!rnstd_name test_name markrn谢丹静 科学水平1 60rn邹李超 科学水平1 80rn谢丹静 科学水平2 75rn邹李超 科学水平2 80rn如果用rnselect std_name,rn max(case test_name when '科学水平1' then mark else 0 end) '科学水平1',rn max(case test_name when '科学水平2' then mark else 0 end) '科学水平2'rnfrom mark_viewrngroup by std_name rn结果是:rnstd_name 科学水平1 科学水平2rn谢丹静 60 75rn邹李超 80 80rn但是如果用:rndeclare @sql varchar(8000)rnselect @sql = isnull(@sql + '],[' , '') + test_name from mark_view group by test_namernset @sql = '[' + @sql + ']'rnexec('select * from(select * from mark_view) as a <em>pivot</em>(max(mark) for test_name in ('+@sql+'))as b ORDER BY std_name')rn结果是:rnstd_name 科学水平1 科学水平2rn谢丹静 60 NULLrn谢丹静 NULL 75rn邹李超 80 NULLrn邹李超 NULL 80rn郁闷啊!我不是计算机专业的。就是觉得好玩才自学EN也不怎么样!就是写点皮毛。rn希望高手能给点迷津
Oracle转列pivot
oracle数据库最详细的<em>行</em><em>转列</em>资料,是官方文档的详细介绍版,中文的
SQL转列pivot
IF object_id('tempdb..#temp_<em>pivot</em>') is not null drop table #temp_<em>pivot</em> go select * into #temp_<em>pivot</em> from ( select '2018-12-01' as CreateTime,10 as NUM union select '2018-12-01' as CreateTime...
SqlServer 转列函数pivot
Title       choose Text 第一题 A         第一题答案A 第一题 B         第一题答案B 第一题 C         第一题答案C 第一题 D         第一题答案D 第二题 A         第二题答案A 第二题 B         第二题答案B 第二题 C         第二题答案C 第二题 D
oracle函数pivot转列
最近工作中,需要将数据<em>行</em><em>转列</em>,在网上找了一下,发现Oracle11有个函数<em>pivot</em>可以直接<em>行</em><em>转列</em>,很是方便,减少了SQL的代码量。下面仅记载自己的用法总结。 oracle 官方的解释 http://www.oracle-developer.net/display.php?id=506 SELECT ... FROM   ... PIVOT [XML]    ( <em>pivot</em>_cl
PIVOT函数,转列
  PIVOT函数的格式如下  PIVOT(&amp;lt;聚合函数&amp;gt;([聚合列值]) FOR [<em>行</em><em>转列</em>前的列名] IN([<em>行</em><em>转列</em>后的列名1],[<em>行</em><em>转列</em>后的列名2],[<em>行</em><em>转列</em>后的列名3] CREATE TABLE #Temp (TypeClass NVARCHAR(200),  Name NVARCHAR(200),  Price int) INSERT INTO #Temp (TypeClass...
==========转列(PIVOT函数求解)=========
近日在处理<em>行</em><em>转列</em>时<em>遇到</em>困惑,特向C友们求解。rn测试数据如下:rn[code=SQL]rnCREATE TABLE Arn(rn uid INT,rn pname CHAR(4),rn pcount INT,rn pmoney INTrn)rnrnCREATE TABLE Brn(rn deptID INT,rn groupID INT,rn uid int rn)rnrnINSERT arnSELECT 1,'A',1,2 UNION ALLrnSELECT 2,'B',1,4 UNION ALLrnSELECT 3,'A',1,2 UNION ALLrnSELECT 1,'A',1,2 UNION ALLrnSELECT 1,'A',1,2 UNION ALLrnSELECT 2,'A',1,2 UNION ALLrnSELECT 3,'B',1,4 UNION ALLrnSELECT 1,'A',1,2 UNION ALLrnSELECT 1,'A',1,2 rnrnINSERT brnSELECT 1,1,1 UNION ALLrnSELECT 1,1,2 UNION ALLrnSELECT 1,2,3 rnrn结果要求:rndeptid groupid uid A A _count B B _countrn----------- ----------- ----------- ----------- ----------- ----------- -----------rn1 1 1 10 5 0 0rn1 1 2 2 1 4 1rn1 2 3 2 1 4 1rnrnrn解决方案:rnDECLARE @sql NVARCHAR(MAX)rnrnSELECT @sql=ISNULL(@sql+',','')+QUOTENAME(pname)+'=sum(case when pname=N'+QUOTENAME(pname,'''')+'rnthen pmoney else 0 end),'+QUOTENAME(pname+'_count')+'=sum(case when pname=N'+QUOTENAME(pname,'''')+'rnthen pcount else 0 end)' FROM a GROUP BY pnamernrnSET @sql='select b.deptid,b.groupid,t.* from b left join(select uid,'+@sql+' from a group by uid) t on t.uid=b.uid'rnrnEXEC(@sql)rnrn<em>问题</em>:rnPIVOT能否实现?如何采用PIVOT实现?rn[/code]
MySQL实现pivot转列
1.创建表: Create Table CREATETABLE`<em>pivot</em>`( `id`int(11)NOTNULLAUTO_INCREMENT, `salary`doubleNOTNULL, `year`varchar(4)NOTNULL, `name`varchar(10)NOTNULL, PRI...
转列pivot -- 简单的实例 to 动态拼接转列
一、orcale简单<em>行</em><em>转列</em> with temp as ( select distinct r.id rid, r.level_no levelno, r.type_name rname, c.id cid, ...
SQL 2008 用转列pivot 怎么弄
rnINDEID EID INTID INTName ItemName ItemMonrn-------------------- -------------------- -------------------- -------------------------------------------------- --------------------------------------------------rn1209 394 1 车损险 83700 540.71rn1210 394 2 三者 10万 469.33rn1211 394 3 不计免赔 是 151.51rnrnrn我解释一下字段名称 INDEID 自动列,不用管了。 EID 他父表的ID, INTID INTName 一个是类型ID,一个是类型名称rn ItemName 是保额的意思 ItemMon是 保费的意思rnrn打比方,买一个 车损险,那么他的保额可能是10W元,但是购买这份保险需要300元,那10元 这个就是保额,300就是保费rnrn现在要做的是,吧类型(车损险这些) 转成列。 这个怎么转,而且最后我得到的表,一定是有列名的rnrn比如上面搞了,就成下面的rnrnEID 车损险_保额 车损险_保费 三者_保额 三者_保费 不计免赔_保额 不计免赔_保费rnrn394 83700 540.71 10万 469.33 是 151.51rnrnrn一个项目 跟随 一个 保额,一个保费。项目不一定是三个
pivot 和动态转列 哪个效率高?
数据量足够大的情况下(百万)rn<em>pivot</em> 和动态<em>行</em><em>转列</em> 哪个效率高?
pivot实现oracle数据库中的转列
效果如下图: 原表 目标表: 表名称:tkhsx_cs SQL语句: SELECT * FROM (SELECT T.KHH,T.SXBM,T.GXRQ.T.SXZ FROM TKHSX_CS T)--注意这里的列,除了要转换的之外,其余的都要一样,不然不能合并到一<em>行</em>里面去 PIVOT(MAX(SXZ) FOR SXBM IN('JTDZ','XQAH','NL'); ...
【数据库】sql 转列使用pivot
SELECT * from ( SELECT 商品名称,销售数量,月份 FROM tb_helenzhou ) as t1----被<em>行</em><em>转列</em>的字段先在这里列出来 PIVOT (SUM(销售数量) FOR 月份 IN ([1], [2]) ) as t2---goup by 除了销售数量和月份之外的的被上面列出来的其他字段 privot(sum(被计算字段) for 字...
Oracle 存储过程实现转列-pivot
<em>行</em><em>转列</em> <em>pivot</em> un<em>pivot</em> 存储过程<em>行</em><em>转列</em> <em>pivot</em> in 子查询
pivot实现转列--mybatis实现
使用<em>pivot</em>关键字格式 select * from txueshen  <em>pivot</em> ( sum(tfs) --聚合函数 也可用avg count  等根据需求 for tkm   --需要转<em>行</em>的字段名 in ('语文','数学 ' )   --写明确字段的值的,集合   必须是for中的值    不可使用子查询 ) 若想要在in中写动态的, <em>pivot</em>后面加上xml 生成的是xmltype类...
Oracle 11g Pivot函数实现转列
先上语法规范: SELECT .... FROM PIVOT ( aggregate-function() FOR IN (, ,..., ) ) AS WHERE ..... 通过一个例子说明其用法: select * from (select salary, department_id from employee) piv
sqlserver转列与列转(PIVOT与UNPIVOT)
PIVOT用于将列值旋转为列名(即<em>行</em><em>转列</em>),在SQLServer 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P 完整语法: table_source PIVOT( 聚合函数(value_column) FOR <em>pivot</em>_column IN(&amp;lt;column_list&amp;gt;) )   ...
oracle的转列、列转pivot、unpivot
效果: 》》》 <em>pivot</em><em>行</em><em>转列</em> create table CostList( Cost_date varchar2(20), --消费日期 Cost_name varchar2(20), --消费内容 Cost_money number(8) --消费金额 ); -...
oracle 转列pivot函数使用问题
oracle <em>行</em><em>转列</em>方法   如果有这样的需求,数据库插入的有A表这样的结果,展示要变成B表这样的结果(下边的这个图是摘自别人的,我主要说<em>pivot</em>函数那种方式) 对于这样的需求即需要<em>行</em><em>转列</em>了。 1、第一种即是大家常见的。这种方法也是别人的,我主要说后边的<em>pivot</em>函数那种方式 select [品号], sum(case when [日期]='06-08' then [
sqlserver (转列pivot与(列转)unpivot的应用
sqlserver 中PIVOT(<em>行</em><em>转列</em>)与UNPIVOT(列转<em>行</em>)使用 现在有一个表 为了方便 我们使用un<em>pivot</em>先展示一下列转<em>行</em> 个人总结:列转<em>行</em> 先 起两个别名,一个是之前列总体的分类 比如 oneday,twoday…可为第*天 另一个是之前列下数据点比如金额 然后哪个是分类哪个就在for里,把之前的列写在in里 具体代码如下 select name,[第*天],[金额] ...
Oracle 转列 pivot函数基本用法
2018年9月30日22点,眼看着就10月份了,回头看下,8月份就写了一篇博客,9月一篇都没写,想着还是得续一续。 刚好前几天,帮一个群友处理了一个关于Oracle中<em>行</em><em>转列</em>,根据查询中有的项目,动态<em>转列</em>的做法。想着也挺好玩,不过看下时间,不太充足。所以暂时先写个Oracle自带的<em>行</em><em>转列</em>函数,<em>pivot</em>的基本用法。国庆几天看下有时间的话完善一下动态<em>转列</em>的做法,到时候再另写一篇附链接过来。 一、运...
Oralce 转列列转应用-pivot、unpivot
在Oracle11g之前 我们做统计分析的时候,往往需要这样的需求select (select 2 from dual) as aa, (select 3 from dual) as bb from dual;经常写很多的子查询 并且与其他表关联。以学生表为例(附:该表只是做演示,并未遵循三大范式):create table StuInfo(id int,stuName varchar(20),st
SQL2005的pivot能否实现文本字段的转列
我看到的例子中,好像都是针对数值字段的<em>行</em><em>转列</em>,它里面必须用到一个聚合函数,不知文本字段应如何实现<em>行</em><em>转列</em>
datastage通过Pivot Enterprise stage实现转列
通过datastage实现输入数据如下: REPID last_name Jan_sales Feb_sales Mar_sales 100 Smith 1234.08 1456.80 1578.00 101 Yamada 1245.20 1765.00 1934.22 输出数据如下: REPID last_name Q1sales Pivot_index 100 Smith 1234.08 0 100 Smith 1456.80 1 100 Smith 1578.00 2 101 Yamada 1245.20 0 101 Yamada 1765.00 1 101 Yamada 1934.22 2
求助sql2005关于转列 PIVOT的另一个用法
为方便各位洞察<em>问题</em>,提供测试代码如下:rn[code=SQL]rnCREATE TABLE salesByMonthrn(rnyear char(4),rnmonth char(3),rnamount money,rnPRIMARY KEY (year, month)rn)rnrnINSERT INTO salesByMonth (year, month, amount)rnVALUES('2004','Jan', 789.0000)rnINSERT INTO salesByMonth (year, month, amount)rnVALUES('2004','Feb', 389.0000)rnINSERT INTO salesByMonth (year, month, amount)rnVALUES('2004','Mar', 8867.0000)rnINSERT INTO salesByMonth (year, month, amount)rnVALUES('2004','Apr', 778.0000)rnINSERT INTO salesByMonth (year, month, amount)rnVALUES('2004','May', 78.0000)rnINSERT INTO salesByMonth (year, month, amount)rnVALUES('2004','Jun', 9.0000)rnINSERT INTO salesByMonth (year, month, amount)rnVALUES('2004','Jul', 987.0000)rnINSERT INTO salesByMonth (year, month, amount)rnVALUES('2004','Aug', 866.0000)rnINSERT INTO salesByMonth (year, month, amount)rnVALUES('2004','Sep', 7787.0000)rnINSERT INTO salesByMonth (year, month, amount)rnVALUES('2004','Oct', 85576.0000)rnINSERT INTO salesByMonth (year, month, amount)rnVALUES('2004','Nov', 855.0000)rnINSERT INTO salesByMonth (year, month, amount)rnVALUES('2004','Dec', 5878.0000)rnINSERT INTO salesByMonth (year, month, amount)rnVALUES('2005','Jan', 7.0000)rnINSERT INTO salesByMonth (year, month, amount)rnVALUES('2005','Feb', 6868.0000)rnINSERT INTO salesByMonth (year, month, amount)rnVALUES('2005','Mar', 688.0000)rnINSERT INTO salesByMonth (year, month, amount)rnVALUES('2005','Apr', 9897.0000)rn--查看数据rnselect * from salesByMonthrn--按照常规<em>行</em><em>转列</em>rn SELECT *rn FROM salesByMonth rnPIVOT ( SUM(amount) FOR month INrn ([Jan],[Feb],[Mar],[Apr],[May],[Jun],[Jul],[Aug],[Sep],[Oct],[Nov],[Dec])rn )trn显示结果rnyear Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Decrn---- --------------------- --------------------- --------------------- --------------------- --------------------- --------------------- --------------------- --------------------- --------------------- --------------------- --------------------- ---------------------rn2004 789.00 389.00 8867.00 778.00 78.00 9.00 987.00 866.00 7787.00 85576.00 855.00 5878.00rn2005 7.00 6868.00 688.00 9897.00 NULL NULL NULL NULL NULL NULL NULL NULLrnrn(2 <em>行</em>受影响)rnrnrn而我的需求是相反的操作,我要求把year作为列显示,呈现类似如下的结果:rn 2004 2005rnJan X X rnFeb rnMarrnAprrnMayrn[/code]rnrn求助各位达人!
SQL带条件查询的参数化动态PIVOT转列
带条件查询的参数化动态PIVOT<em>行</em><em>转列</em>,方便快速完成<em>行</em><em>转列</em>数据处理。
Sql Server 转列函数- Pivot 的使用教程
PIVOT 提供的语法比一系列复杂的 SELECT...CASE 语句中所指定的语法更简单和更具可读性。 以下是带批注的 PIVOT 语法: SELECT &amp;lt;非透视的列&amp;gt;, [第一个透视的列] AS &amp;lt;列名称&amp;gt;, [第二个透视的列] AS &amp;lt;列名称&amp;gt;, ... [最后一个透视的列] AS &amp;lt;列名称&amp;gt;, FROM ...
关于列转换用pivot问题
如何实现以下数据的<em>行</em>列转换:rn[code=SQL]rn--数据rnid typern 1 23rn 1 12rn 1 103rn 2 45rn 2 98rn 4 1rn 4 104rn 4 458rn 4 123rn 4 90rn rn --<em>行</em>列转换后,type最多5列,rn id type1 type2 type3 type4 type5rn 1 23 12 103 null nullrn 2 45 98 null null nullrn 4 1 104 458 123 90rn[/code]
用Pandas画图遇到问题(plot、pivot、unstack)
整理自优达学城课程论坛 使用Pandas绘图。想画的图是:每个UNIT的每天平均气温(多条折线图在同一个图中) <em>pivot</em>()可以轴向转置 unstack()可以multiindex轴向转置
oracle 11g 转列问题 decode实现与pivot实现
oracle 11g <em>行</em><em>转列</em>的<em>问题</em>举一个简单的例子,假设有表名为demo其中只有两列一列为类型names,一列为数量nums。表中数据如下:目标统计出表中apple及orange各自的总数,在一列中显示出来。常规写法:select names,sum(nums) from demo group by names;group完的结果如下:要转到一<em>行</em>中显示则需要使用decode函数(或者case wh...
pivot问题
declare @s nvarchar(4000)rnSelect @s=isnull(@s+',','')+quotename([Course]) from Class group by[Course]rnexec('select * from Class <em>pivot</em> (max([Score]) for [Course] in('+@s+'))b')rnrn其中的isnull(@s+',','')这个我不知道什么意思,因为一般isnull后面只有两个参数吧rn
pivot 问题
两个表连接之后 的数据 是 578,然后再<em>pivot</em>,但数据少了一<em>行</em>,大家<em>遇到</em>过类似的<em>问题</em>么
PIVOT的问题
有表sale_Table(product_id,area,s_number),如果要求按区域统计产品销售数量在sql2005可以这样写rnrnselect * from sale_table as xssltjrn<em>pivot</em>rn(rnsum(s_number) for area in ([北京],[上海],....)rn) as pvtrnrn现表改成sale_Table(product_id,area,s_number,s_money),要求按区域统计产品销售数量和销售金额,仍然用<em>pivot</em>怎么写?当然用其他方法我会的。rn
pivot
orderid 是int类型rndisplay_item 是varchar类型rn为什么我将display_item作为列名就可以,而将orderid作为列名则出错?rnrn以下是display_item作为列名rnselect * from (select project,display_item,orderid from design_bom_displayformat) a rn<em>pivot</em> (max(orderid) for display_itemrn in (area,module,specialty)) brnrn以下是orderid作为列名,会报错rnselect * from (select project,display_item,orderid from design_bom_displayformat) a rn<em>pivot</em> (max(display_item) for orderidrn in (1,2,3)) brn错误信息为:rn消息 102,级别 15,状态 1,第 3 <em>行</em>rn'1' 附近有语法错误。rn
sql中经常遇到转列问题
1、<em>问题</em>描述: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我们经过深思熟虑在数据库中设计的数据表,最终还是不能适应所有的业务场景。包括在面试过程中会<em>遇到</em>这么一个SQL像我一样菜的人来讲,还是有点难度的,所以今天把这个<em>问题</em>给做一下笔记。我们创建一个成绩表,在成绩表中有这么几个字段“编号(主键自增)、姓名、科目、成绩”,我们需要将每个人对应的科变成列头,然后将科目对应的成绩放在下面,...
经常用到的透视函数(转列&列转)函数 PIVOT()&UNPIVOT
说明: 工作中经常<em>遇到</em>一组or一条数据按照不同类型被分成多条数据,如 一条合同的分期还款账单按照不同类型被分成本金,利息,管理费等, 数据统计工作中,一条合同一期就会分成多条合同 如 实际工作中 常需要将同一期多条数据整合成一期并且账单条目类型横向显示,即数据透视过程: 即实现 可使用oracle自带函数 <em>pivot</em>() 数据透视函数; 具体过程如下
MySql不支持Sqlserver的Pivot函数,求帮忙转列~~~~~~~~~~~~~~~
[code=sql] /****** Script for SelectTopNRows command from SSMS ******/rnSELECT S.*, D.ADMOH,D.PROH rnFROM E85_STATIONERYLIST S,rn(SELECT NAME, SUM([ADMOH]) AS ADMOH,SUM([PROH]) AS PROH rnFROM (rnSELECT A.NAME,sum(B.Quantity) AS OH,'ADMOH' AS TYPE,'ADMPN' AS PN rnFROM E85_StationeryList A LEFT JOIN [RR_SubInvOnHand_Current] B rnON B.Part = A.PARTNO_ADM rnGROUP BY A.NAMErnUNION rnSELECT A.NAME,SUM(B.Quantity) AS OH,'PROH' AS TYPE,'PRPN' AS PN rnFROM E85_StationeryList A LEFT JOIN [RR_SubInvOnHand_Current] B rnON B.Part = A.PARTNO_PR rnGROUP BY A.NAMErn) AS CrnPIVOT (rn SUM(OH) rn FOR TYPE IN (rn [ADMOH],rn [PROH]rn )rn) AS PrnGROUP BY NAME rn) AS DrnWHERE S.NAME = D.NAMErnORDER BY S.IDrn[/code]各位看官,帮忙把下面的sqlserver的语句改成Mysql可以执<em>行</em>的,原因是Mysql不支持Pivotrn
Oracle 转列pivot 列中存放多个值
Oracle <em>行</em><em>转列</em><em>pivot</em> 列中存放多个值
Oracle SQL函数pivot、unpivot转置函数实现转列、列转
Oracle SQL函数<em>pivot</em>、un<em>pivot</em>转置函数实现<em>行</em><em>转列</em>、列转<em>行</em>
Oracle pivot 转列、unpivo列转函数使用详解
一 <em>pivot</em>函数表达式: 有一个职工部门工资表<em>pivot</em>_tmp,数据如下: 如果我们想要求各部门的工资和,很简单一个sum和group by 就满足了。 select t.dept_name 部门,sum(t.salary) 工资总额 from <em>pivot</em>_tmp t group by t.dept_name; 执<em>行</em>结果: 但是如果我们要求结果显示如下呢: 可以先...
Oracle 转列(pivot、wm_concat、decode)使用总结(转载)
在日常使用中,经常<em>遇到</em>这样的情况,需要将数据库中<em>行</em>转化成列显示,如 转化为 这个时候,我们就需要使用<em>pivot</em>函数 百度后,参考网址http://www.2cto.com/database/201501/367164.html ,完成了以下操作 with temp as( select '四川省' nation ,'成都市' city,'第一' ranking from dual un...
pivot函数,转列数据没合并是什么原因
请问下用<em>pivot</em>函数,<em>行</em><em>转列</em>数据没合并是什么原因rn[code=sql]--Leave 01事假 ,02病假rnGOrnCreate Table hrmLeaveBill(BillNo varchar(20) Primary key ,BillDate int not Null,Name varchar(20) not null,Leave varchar(20),rn DaysNo numeric(19,9))rnInsert into hrmLeaveBillrnselect 'QJ20170701001','20170701','张三','01',2 Union Allrnselect 'QJ20170701002','20170701','李四','01',1 Union Allrnselect 'QJ20170701003','20170701','张三','02',5 Union Allrnselect 'QJ20170801001','20170801','李四','02',3 Union Allrnselect 'QJ20170802001','20170802','李四','01',1.5rnGOrnrnrn---PIVOTrnSELECT Name,LEFT(BillDate,6) as '年月',isNull([01],0)as '事假',isNull([02],0) as '病假'rnFROM hrmLeaveBill rnPIVOTrn(rn SUM(DaysNo) for Leave in([01],[02])rn )rnAArnwhere LEFT(BillDate,6)=201707[/code]rn当前结果rnName 年月 事假 病假rn张三 201707 2.000000000 0.000000000rn李四 201707 1.000000000 0.000000000rn张三 201707 0.000000000 5.000000000rn想要的结果rnName 年月 事假 病假rn张三 201707 2.000000000 5.000000000rn李四 201707 1.000000000 0.000000000rn
sqlserver pivot 动态转列且一转多列的解决方案
今天有个同学要做<em>行</em><em>转列</em>的<em>问题</em>,把实现过程记录一下 首先把同学要实现的原表晒出来,大家看下 这是同学要实现的效果,主要是一<em>行</em>转多<em>行</em>的效果,且转换前不知道有多少唯一<em>行</em>值该转为列 下面直接贴代码,仅供大家参考,如果有疑问请联系我qq,2625526306,有偿代写sql,原创,转载需备注,谢谢 if object_id('tempdb..#test') is not null drop table #...
Oracle技术学习,转列pivot,decode,列转unpivot
Oracle技术学习,<em>行</em><em>转列</em><em>pivot</em>,decode,列转<em>行</em>un<em>pivot</em> <em>行</em><em>转列</em> 最近在做报表开发,存储过程的时候<em>遇到</em>了<em>行</em><em>转列</em>的<em>问题</em>,在博客上看了一下,然后自己实战了一下,做个总结。 <em>pivot</em>函数实现<em>行</em><em>转列</em> 1.<em>pivot</em>函数语法 <em>pivot</em>(聚合函数 for 列名 in (类型)) decode函数实现<em>行</em><em>转列</em> 1.decode函数语法 聚合函数 decode(列名,类型,列名1) unpiv...
pivot排序的问题
[code=SQL]rnrndeclare @sql varchar(max)rn select @sql =isnull(@sql + '],[' , '') + a2 from #a group by a2 rn set @sql = '[' + @sql + ']'rn exec ('select * from (select * from #a ) a <em>pivot</em> (max(Losttime) for a2 in (' + @sql + ')) b')rnrnrnrn按c2排序rnrna1 a2 c1 c2rnCO OP20 93 103rnQ OP20 10 103rnQ OP60 90 90rnDT OP50 70 70rnCO OP70 21 30rnDT OP70 9 30rnDT OP40 14 14rnrn之后再<em>行</em><em>转列</em>,但转后顺序重新排过了!他按op20,op30,op40......rna1 op20 op40 op50 op60 op70rnCO 93 NULL NULL NULL 21rnDT NULL 14 70 NULL 9rnQ 10 NULL NULL 90 NULLrnrnrnrn结果顺序rna1 op20 OP60 op50 OP70 OP40rnrn[/code]
Pivot 多列转问题
各位亲,rn如果是单列转<em>行</em>用Pivot 好解决,但是用<em>pivot</em>如何达到多列转成<em>行</em>的效果? rnID,Item1,Number1,Number2rn1,A,10,1rn1,B,5,3rn1,A,3,2rn2,A,5,3rn2,B,1,2rn2,B,2,2rn效果rnID,A(Number1),A(Number2),B(Number1),B(Number2)rn1,13,3,5,3rn2,5,3,3,4rnrn非常感谢帮忙,在线等!
pivot”和“UNION ALL”的问题
group by m.meterno,m.metertype,m.Unit,m.meterusetype,m.regionno,m.buildingfunction,m.buildingno,m.usedepartment,V.SN,V.DD) as P rn [color=#FF0000]<em>pivot</em>[/color] (sum(P.sumqty) for P.DD in ([01],[02],[03],[04],[05],[06],[07],[08],[09],[10],[11],[12] )) as AA/*AA*/rn rn [color=#FF0000]UNION ALL [/color]rnrn<em>问题</em>一:“<em>pivot</em>”的作用是什么???怎样用???rnrn个人理解:把一个字段值“P.sumqty”,按照另一个字段“P.DD”,将其分出来,由“P.DD”中在rn([01],[02],[03],[04],[05],[06],[07],[08],[09],[10],[11],[12] )范围内的,担任字段名称。rnrnrn<em>问题</em>二:“UNION ALL”的作用是什么,怎样进<em>行</em>连接的,把“两条记录”和在一起。还是怎么着???
关于Pivot的问题
有两个table:rnrnMaintenancePlanView rnrnEqId MTypeId MPlanIdrn14 2 1rn10 6 10rn12 6 10rn9 6 10rn11 6 10rn7 6 10rn8 6 10rn11 6 19rn7 6 19rn8 6 19rn18 2 1rn18 3 1rn14 3 1rnrnMaintenanceType rnrnMTypeId MTypeNamern1 巡检rn2 静态,动态精度检查rn3 特定自主检查rn4 巡检rn6 数据备份rnrn要求的查询结果(按MPlanId):rnrnEqId MPlanId 1 2 3 4 6rn14 1 0 1 1 0 0rn18 1 0 1 1 0 0rnrnrn实现方法:rnrndeclare @s nvarchar(4000),@s2 nvarchar(4000)rnselect @s2=''rnSelect @s=isnull(@s+',','')+quotename(MTypeId),@s2=@s2+','+quotename(MTypeId)+'=isnull(rtrim('+quotename(MTypeId)+'),'''')'rnfrom MaintenanceType group by MTypeIdrnrnexec('select EqId,MPlanId'+@s2+' from MaintenancePlanView <em>pivot</em> (count(MPEqListId) for MTypeId in('+@s+') )t2 where mplanid=1')rnrn可运<em>行</em>结果是:rnEqId MPlanId 1 2 3 4 6rn14 1 0 1 0 0 0rn14 1 0 0 1 0 0rn18 1 0 1 0 0 0rn18 1 0 0 1 0 0rnrn请问高手怎么解决?rn
关于Pivot下标越界的问题
Dim ptView As PivotViewrn Pivot.ConnectionString = "……"rn Pivot.DataMember = "资金余额"rn Pivot.DisplayPropertyToolbox = Falsern Pivot.DisplayToolbar = Falsern Pivot.DisplayOfficeLogo = Falsern Set ptView = Pivot.ActiveViewrn ptView.ColumnAxis.InsertFieldSet ptView.FieldSets("币种市场")rn ptView.RowAxis.InsertFieldSet ptView.FieldSets("币种市场")rn ptView.DataAxis.InsertFieldSet ptView.FieldSets("资金余额_B")'提示下标越界rnrnPivot是Office web控件的那个PivotTablern这段代码那里有<em>问题</em>啊rn小弟刚学rn不太明白
关于pivot问题
select * from (select * from tb) a <em>pivot</em> (max(ss) for fjid in ('+@sql+')) brnrn for fjid in ('+@sql+')) 这个in() 里不能是数字吗?
关于pivot问题
<em>pivot</em> (.............for field1 in ([a],[b],[c])), 关于in 里面的列,如果列内容不确定,该怎样写in( ) 语句? 试过 in (select field1 from tablename group by field1) 不<em>行</em>。rn多谢rn
转列 用逗号隔开
表arn id namern 1 haharn 1 hehern 2 xixirn 4 kkrn 4 hhrn...sql 查询显示的结果为 rn id namern 1 haha,hehern 2 xixirn 4 kk,hhrn...rnrn另外存储过程 rn表b 字段id为整数rn怎么将1到100 插入表b中rn
转列问题
有如下表:rnrnNo ID project wayrn1111 1 方案1 广东rn1111 1 方案2 广东rn1111 1 方案3 广东rn2222 2 方案a 湖南rn2222 2 方案b 湖南rnrn要得到如下结果:rnNo ID project project project wayrn1111 1 方案1 方案2 方案3 广东rn2222 2 方案a 方案b 湖南rnrnrn有多少个方案(project)不定,以最多的那个为基准rn如果 NO 相同,ID,way 都是相同的
转列问题
我用class代表课程字段,table表示表名,代码如下:rnselect name, class = (stuff((select ',' + classrnfrom table rnwhere name = a.name for xml path('')),1,1,'')) rnfrom table as a rngroup by name rnrn现在class为int类型,所以不能直接使用,但是使用cast转换又说stuff不能使用内置函数,请问如何整~
转列问题
ALTER procedure [dbo].[proc_packing_set] rn(@whereSql varchar(1000)) rnas rnbegin rndeclare @sql nvarchar(4000) rnrnset @sql='select a.box_size,b.box_desc as 箱型' rnrnSelect @sql=@sql+',sum(case when actual_size='''+actual_size+ ''' then qty else 0 end) As '''+actual_size+'''' rn[color=#FF0000]From tbl_packing_set a +@whereSql + group by order_no,product_no,actual_size [/color]rnrnset @sql=@sql+' From tbl_packing_set a left join tbl_parameter_box_size b on a.box_size=b.box_size ' +@whereSql + rn'Group By a.order_no,a.product_no,a.color_id,a.box_size,b.box_desc' rnexecute sp_executesql @sql rnrn红色那不正确,应怎么写
转列 问题
例:rn表一如下:rn0 1 2 3 4 5rna b c d e frnrn表二如下:rn0 arn1 brn2 c rn3 drn4 ern5 frnrn<em>问题</em>:rn有表一得到表二
转列问题
表的结构如下:rn团体体检人员信息表rnrn体检编号 性别 员工编号 rn10001 男 1234 rn10002 男 1456rn10003 男 1111rn....rnrn体检项目信息表rnrn体检编号 检项编号rn10001 0001rn10001 0002rn10002 0003rn10003 0001rn10002 0004rn10001 0004rn....rnrn检项信息表rnrn检项编号 名称 金额rn0001 项目1 100rn0002 项目2 200rn0003 项目3 100rn0004 项目4 150rn....rn要查出这样的结构:rn体检编号 性别 项目1 项目2 项目3 项目4 .....项目N 金额 rn10001 男 0001 0002 0004 450rn10002 男 0003 0004 250rn10003 男 0001 100rn在一个SQL文中怎样实现。rnrn
转列问题
如下图所示rn1.列转<em>行</em>之前的图:rn[img=http://i924.photobucket.com/albums/ad89/xupeihuagudulei/1-4.jpg][/img]rnrn2.列转<em>行</em>之后的图:rn[img=http://i924.photobucket.com/albums/ad89/xupeihuagudulei/2.jpg][/img]rnrn本来样品名称、采样时间、分析项目名称、分析值、指标条件、指标结果这些列都是按正常的方式显示(全是列)。rn现在我有这样的需求rn样品名称、采样时间还是把它当成列不变,但是把分析项目名称、分析值、指标条件、指标结果这些列当作<em>行</em>来显示。rn这sql语句咋写啊?急求。rnrnPS:图片用的国外的空间,可能显示比较慢,大家耐心等待下。多谢。~!
转列问题
看到下面一个例子:rn表ttt有三个字段rnseq --序列rnjcxm --检查项目rnzhi --值rnrn数据分别如下:rnseq   jcxm   zhirn------- -------- --------rn11     1    0.50rn11     2    0.21rn11     3    0.25rn12     1    0.24rn12     2    0.30rn12     3    0.22 rnrn实现功能rn创建视图时移动<em>行</em>值为列值rnrnrncreate view v_view1rnasrnselect seq,rn sum(decode(jcxm,1, zhi)) 检测项目1,rn sum(decode(jcxm,2, zhi)) 检测项目2, rn sum(decode(jcxm,3, zhi)) 检测项目3 rnfrom tttrngroup by seq;rnrn序号 检测项目1  检测项目2  检测项目3rn11     0.50    0.21     0.25rn12     0.24    0.30     0.22rn我试了一下,结果不对呀!我的结果如下:rnrnselect* from v_view1;rnrn SEQ 监测项目1 监测项目2 监测项目3rn----- ---------- ---------- ----------rn 11 1 0 0rn 12 0 0 0rnrn是啥原因呀?rn rn
SqlServer 转列,列转 以及PIVOT函数快速实现转列,UNPIVOT实现列转
SqlServer <em>行</em><em>转列</em>,列转<em>行</em> 以及PIVOT函数快速实现<em>行</em><em>转列</em>,UNPIVOT实现列转<em>行</em>  一   、列转<em>行</em> 创建所需的数据 CREATE TABLE [StudentScores]( [UserName] NVARCHAR(20), --学生姓名 [Subject] NVARCHAR(30), -...
转列问题?
用例表:rn---------------rnid listrn---------------rn1 arn1 brn1 crn1 drn2 arn2 drn2 ern3 drn3 irn3 krn4 crn4 srn......rn把这个表转换成下表,不能游标。rn---------------rnid listrn---------------rn1 a,b,c,drn2 a,e,drn3 d,i,krn4 c,srn......rn
用SQL2000进转列
用SQL2000进<em>行</em><em>行</em><em>转列</em>rn表结构rnID ProName ProNumberrn1 kk 10rn2 BB 20rn3 LL 30rn查询结果集rnID kk BB LLrn1 10 20 30rn怎么查rnrn
sql server pivot问题
[code=sql]rnrnselect t.*,c.总计 from rn (SELECT *rn FROM ( SELECT rn bus_BusinessDetail.BusinessType as '业务类型',rn bus_BusinessDetail.InputDate as '日期',rn cost_FeeInfo.BusinessNum as '业务号',rn bus_BusinessDetail.ShippingLine as '航班号',rn bus_BusinessDetail.Consignor as '委托方',rn bus_BusinessDetail.MainListNumber as '主单号',rn bus_BusinessDetail.GoodsCount as '件数',rn bus_BusinessDetail.Weight as '重量',rn bus_BusinessDetail.Volume as '体积',rn bus_BusinessDetail.ContainerMode as '箱型',rn cost_FeeInfo.CostName,rn cost_FeeInfo.Currency_Name as '币制名称',rn cost_FeeInfo.[ShouldMoney]rn FROM bus_BusinessDetail,cost_FeeInforn WHERE bus_BusinessDetail.BusinessNum = cost_FeeInfo.BusinessNum AND bus_BusinessDetail.Consignor = '深圳市平田贸易有限公司' AND bus_BusinessDetail.BusinessType = '1' AND bus_BusinessDetail.InputDate BETWEEN '2012-01-01 00:00:00' AND '2014-01-01 00:00:00' AND cost_FeeInfo.CostType='1'rn ) AS t PIVOT ( AVG(ShouldMoney) FOR CostName IN ( 报关代理费,报关费,测试,改单费,港杂费,清洁费 )) as temp) t,rn (select BusinessNum,sum(ShouldMoney) '总计' from cost_FeeInfo group by BusinessNum) crnwhere t.业务号 = c.BusinessNumrn[/code]rnrnrn以上 sql 语句 我应该如何 计算 报关代理费,报关费,测试,改单费,港杂费,清洁费,这些费用,球高手解答,QQ397870376
Pivot Table 的问题
用Pivot Table 可以做到下面的结果吗, 也就是Pivot Table怎么处理Distinct Count的<em>问题</em>.rn如果直接用Count的话,只会计算有多少<em>行</em>,而不会根据相同内容当一个count.rnrnrn表rnCountry Factory rnCA 101rnCB 106rnCA 101rnCA 102rnrnrn结果rnCountry Factory CountrnCA 2rnCB 1rn
关于PIVOT运算符的问题
有如下语句,根据理解将它分为以下四部分:rn1、select CardType,[2006] as Year2006,[2007] as Year2007rnfromrnrn2、(rn select CardType,ExpYearrn from Sales.CreditCardrn)piv Pivotrnrn3、(rn count(ExpYear) for ExpYear in ([2006],[2007])rn)as carddetailrnrn4、order by CardTypernrn想请教大家的是关于第三部分不理解,以及这条查询语句具体的执<em>行</em>是怎么样的。
一个关于pivot问题
tablename z_johnc rn属性 name village province countryrn varchar(50) varchar(50) int varchar(50)rn[code=SQL]rndeclare @s nvarchar(4000);rnselect @s = isnull( @s + ',', '' ) + quotename([country])rnfrom elbase_test.dbo.z_johnc;rnexec(' select * from elbase_test.dbo.z_johncrn <em>pivot</em> ( sum([privince]) for ([country]) in '+@s+' ) as b ')rn[/code]rn报错rn訊息 102,層級 15,狀態 1,<em>行</em> 1rnIncorrect syntax near '('.rn我用rn[code=SQL]rndeclare @s nvarchar(4000);rnselect @s = isnull( @s + ',', '' ) + quotename([country])rnfrom elbase_test.dbo.z_johnc;rnselect * from elbase_test.dbo.z_johncrn <em>pivot</em> ( sum([privince]) for ([country]) in @s ) as b rn[/code]
数据结构环队的基本操作下载
环队的基本操作,功能如下:1.判断队空2.判断队满3.出队4.入队5.遍历环队6.清屏7.结束程序 相关下载链接:[url=//download.csdn.net/download/fengqingyijiu/3405013?utm_source=bbsseo]//download.csdn.net/download/fengqingyijiu/3405013?utm_source=bbsseo[/url]
程序员Sql经典讲了很多数据库。下载
程序员Sql经典讲了很多数据库。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 相关下载链接:[url=//download.csdn.net/download/qhs1573/3539120?utm_source=bbsseo]//download.csdn.net/download/qhs1573/3539120?utm_source=bbsseo[/url]
3D_opengles_apk下载
3D_apk 包括动态屏保和动态壁纸,3D画面有OpenGL ES实现 相关下载链接:[url=//download.csdn.net/download/qw123caobo/4321734?utm_source=bbsseo]//download.csdn.net/download/qw123caobo/4321734?utm_source=bbsseo[/url]
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池
我们是很有底线的