10001 201203 30
10001 201201 40
10001 201202 50
10002 201201 10
10002 201202 20
10002 201203 30
如何将上述数据写入到,现有如下的数据表中
如果本月是2月份
产品 M-1月 M月 M+1月
10001 40 50 30
10002 10 20 30
--> 测试数据:[tbl]
if object_id('[tbl]') is not null drop table [tbl]
create table [tbl]([产品编号] int,[区间] varchar(6),[销量] int)
insert [tbl]
select 10001,'201203',30 union all
select 10001,'201201',40 union all
select 10001,'201202',50 union all
select 10002,'201201',10 union all
select 10002,'201202',20 union all
select 10002,'201203',30
declare @str varchar(max)
set @str=''
select @str=@str+','+'['+RIGHT([区间],2)+'月]'+'=max(case when RIGHT([区间],2)='
+QUOTENAME(RIGHT([区间],2),'''')+' then [销量] else 0 end)' from tbl
group by RIGHT([区间],2)
exec('select [产品编号]'+@str+' from tbl group by [产品编号]')
/*
产品编号 01月 02月 03月
10001 40 50 30
10002 10 20 30
*/
--> 测试数据:[tbl]
if object_id('[tbl]') is not null drop table [tbl]
create table [tbl]([产品编号] int,[区间] varchar(6),[销量] int)
insert [tbl]
select 10001,'201203',30 union all
select 10001,'201201',40 union all
select 10001,'201202',50 union all
select 10002,'201201',10 union all
select 10002,'201202',20 union all
select 10002,'201203',30 union all
select 10002,'201204',30 union all
select 10001,'201203',30
go
if OBJECT_ID('pro_tracy')is not null
drop proc pro_tracy
go
create proc pro_tracy
as
create table #t
(
[产品编号] int,
[区间] varchar(6),
[销量] int
)
insert #t
select * from tbl
where cast(RIGHT([区间],2) as Int)
between MONTH(GETDATE())-1 and MONTH(GETDATE())+1
declare @str varchar(max)
set @str=''
select @str=@str+','+'['+RIGHT([区间],2)+'月]'+'=max(case when RIGHT([区间],2)='
+QUOTENAME(RIGHT([区间],2),'''')+' then [销量] else 0 end)' from #t
group by RIGHT([区间],2)
exec('select [产品编号]'+@str+' from #t group by [产品编号]')
--修改了你的数据
exec pro_tracy
/*
产品编号 02月 03月 04月
10001 50 30 0
10002 20 30 30
*/
Question step 0 请将原始数据转换下格式 原始数据如下:
这道题要用到汇总,所以我们要用 sum函数,一个人对应一条数据,所以我们要对name进行group by分组: SELECT s.name, SUM(CASE WHEN s.category='语文' THEN s.score ELSE 0 END) AS '语文', SUM(CASE WHEN s....
SQL行转列汇总 PIVOT 用于将列值旋转为列名(即行转列),在 SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT 的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P 注意:PIVOT、UNPIVOT是SQL ...
SQL行转列汇总 PIVOT 用于将列值旋转为列名(即行转列),在 SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT 的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P 注意:PIVOT、UNPIVOT是SQL Server...
Kettle使用_27 行转列与列转行方法汇总 需求:通过kettle实现行列转换与列转行。 解决方法:主要通过排序记录、行专列、列转行、行扁平化组件解决。 Previous work: 这里的数据是学生成绩数据和员工数据,内容...
行转列 方法一:Oracle中的Pivot函数 说明:pivot(聚合函数 for 列名 in(类型)),其中 in(‘’) 中可以指定别名,in中还可以指定子查询,比如 select distinct ranking from temp SELECT * FROM [StudentScores]...
mysql行转列(将同一列下的不同内容的几行数据,转换成几列显示)、列转行、行列汇总、合并显示
这篇文章主要介绍了mysql 行转列和列转行实例详解的相关资料,需要的朋友可以参考下 mysql行转列、列转行语句不难,不做多余解释了,看语句时,从内往外一句一句剖析。
如何使用SQL实现列转行和行转列?1 背景2 行转列2.1 读入数据2.2 需求2.3 SQL实现2.3.1 第一种方法2.3.2 第二种方法2.4 总结3 列转行3.1 需求13.2 SQL实现3.3 需求23.4 SQL实现 1 背景 为什么要做这个内容?一个是...
现在我有张表,字段有A,B,C,D,E;一共五个,现在A是主键,B存的数据是用逗号分隔的数据,C同B,D和E字段属于一般字段;...我会行转列和分开有逗号的字段,但是最后怎么组合成目标数据犯愁,求思路。。。
介绍三种常用函数,空字段赋值,行转列,case when, 一、NVL函数 空字段赋值, 语法:nvl(string1,replaceValue),当某值为空时调用, 二、case when 就相当于java中switch case,记得最后一定要加end,else...
今天同学在公司业务中遇到了行转列和列转行的问题,为了防止忘记,还是写一篇博客记录一下吧。 行转列 1.1 相关函数介绍 1.2 行转列案例 1.3 CONCAT与CONCAT_WS的区别 列转行 2.1 相关函数介绍 2.2 列转行案例 ...
行转列: 1.行转列所用的函数 CONCAT(string A/col, string B/col…):返回输入字符串连接后的结果,支持任意个输入字符串; CONCAT_WS(separator, str1, str2,…):它是一个特殊形式的 CONCAT()。第一个参数作为剩余...
def group(data,columns): #columns: 分组依据 file = '/Users/xinran/MES/by_id/' dg = data.groupby(columns) for key in dg.groups: data_p = dg.get_group(key) data1 = data_p.pivot_...
一篇文章搞定mysql的 行转列(7种方法) 和 列转行
行转列,列转行 文章目录行转列,列转行行转列列转行 行转列 1)函数说明(可以是一行转一列,多行转一列) CONCAT(string A, string B...):返回输入字符串连接后的结果,支持任意个输入字符串; CONCAT_WS(separator,...
行转列即将原本同一列下多行的不同内容作为多个字段,输出对应内容。 建表语句: DROP TABLE IF EXISTS tb_score; CREATE TABLE tb_score( id INT(11) NOT NULL auto_increment, userid VARCHAR(20) NOT NULL...
文章目录ORACLE行转列和列转行定义ORACLE-行转列-unpivot数据准备行转列使用ORACLE-列转行-pivot数据准备列转行使用 ORACLE行转列和列转行 定义 行转列:把一行多列数据转换成一列多行数据 列转行:把一列多行数据...
一、行转列函数:CONCAT,CONCAT_WS,COLLECT_SET 在HIVE实际开发过程中,我们会遇到“行转列”和“列转行”的场景。比如: 1、需要取“订单号”对应的所有商品“SKU号”,商品“sku号”放在一列,即从table1查询...
一、行转列 1.1、介绍 1、行转列是指多行数据转换为一个列的字段。 2、Hive行转列用到的函数: concat(str1,str2,...)--字段或字符串拼接 concat_ws(sep, str1,str2)--以分隔符拼接每个字符串 collect_set...
sRevenueTypeName=\'', fsRevenueTypeName, '\'', ',fdSubTotal,0)) AS ''revenue_', fsRevenueTypeName, ''',' ) AS aa , @Revenue_JSON := CONCAT ( @Revenue_JSON,','',&... ,'re
Mysql数据处理/行转列/列转行/分割/拼接/数据复制汇总 原文:Mysql数据处理/行转列/列转行/分割/拼接/数据复制汇总 mysql数据处理记录(使用的 Workbench) 生成随机数 逗号或分号拼接的字符串分割...
最近面试遇到了一道面试题,顿时有点迷糊,只说出了思路,后来百度了一下,整理了一下思路,于是记录下来,方便以后学习。(面试题请参见附件) 相关的数据表: 1.Score表 2.[User]表 SQL语句如下: ...
做项目时,用到了汇总统计的行转列,且 表结构: 具体存储过程脚本如下: -- =============================================-- Author:-- Create date:-- Description:-- =================================...
HH 终风且暴,顾我则笑,谑浪笑敖,中心是悼。 终风且霾,惠然肯来,莫往莫来,悠悠我思。 博客园 首页 ...Oracle行转列、列转行的Sql语句总结 多行转字符串 这个比较简单,用||或concat函数...
pivot_table实现行转列pivot_table函数样例 pivot_table 透视表是一种可以对数据动态排布并且分类汇总的表格格式。或许大多数人都在Excel使用过数据透视表,也体会到它的强大功能,而在pandas中它被称作pivot_table...
2020简历模板合集
安豆是一个想学Android应用开发的小白,于是它找到自己的邻居-程序员大牛-熊哥帮忙。熊哥手把手带着安豆搭建程序的开发环境,实现应用的功能,美化应用界面,让安豆终于开发出了自己的第一个安卓应用-计算器。 学习的过程中,两个伙伴有问有答,学习的过程生动有趣。你一定不会睡着。 让从没有接触过安卓开发并且什么都不会的小白,变成一个能够开发出简单的计算器应用的菜鸟。 让小白对安卓开发有个整体的认识,初步形成安卓开发的概念,掌握安卓开发最最基础的知识。
首先学习Python的基础知识,然后使用Python来控制Excel,做数据处理。 Excel使用者、Python爱好者、数据处理人员、办公人员等 第1章 python基础 1.1 什么是python? 1.2 为什么要学习用Python处理Excel表格? 1.3 手把手教你安装python程序 1.3.1 下载python 1.3.2 安装python 1.3.3 验证是否安装成功 1.4 安装Python集成开发工具PyCharm 1.4.1 下载 1.4.2 安装 1.5 Python的输入与输出
jdk1.8 64位官方正式版 jdk-8u91-windows