SQL 日期行转列问题~~~~~ 1C

图片说明这个怎么转啊,可以写sql代码吗,谢谢大家

2个回答

是给查成报表数据的意思嘛?先给你报表完善下才行的

qq_32177923
qq_32177923 我就想查出这个样子
2 年多之前 回复
SET DATEFIRST 1 -- 每周从星期一开始

;WITH
/* 测试数据 */
table1(id,name,checktime) AS (
    SELECT 10006,'a','2017-03-07' UNION ALL
    SELECT 10007,'b','2017-03-13' UNION ALL
    SELECT 10007,'b','2017-03-14' UNION ALL
    SELECT 10007,'b','2017-03-15' UNION ALL
    SELECT 10010,'c','2017-03-07' UNION ALL
    SELECT 10010,'c','2017-03-13' UNION ALL
    SELECT 10018,'d','2017-03-09 8:13' UNION ALL
    SELECT 10018,'d','2017-03-09 8:14' UNION ALL
    SELECT 10018,'d','2017-03-09 8:29'
),
a(id,name,checkday,[week],[weekday]) AS (
    SELECT DISTINCT
           id,
           name,
           CONVERT(varchar(10),checktime,120),
           DATEPART(week,checktime),
           DATEPART(weekday,checktime)
      FROM table1
)
SELECT id,
       name,
       [week],
       [1],[2],[3],[4],[5],[6],[7]
  FROM a
 PIVOT (
        MAX(checkday)
        FOR [weekday] IN ([1],[2],[3],[4],[5],[6],[7])
       ) p
         id name        week 1          2          3          4          5          6          7
----------- ---- ----------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
      10006 a             11 NULL       2017-03-07 NULL       NULL       NULL       NULL       NULL
      10007 b             12 2017-03-13 2017-03-14 2017-03-15 NULL       NULL       NULL       NULL
      10010 c             11 NULL       2017-03-07 NULL       NULL       NULL       NULL       NULL
      10010 c             12 2017-03-13 NULL       NULL       NULL       NULL       NULL       NULL
      10018 d             11 NULL       NULL       NULL       2017-03-09 NULL       NULL       NULL
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mysql 日期行转列,请教各位SQL大神
SQL菜鸟,还是行转列的问题,不过是按照日期来。baidu、google了各种资料没实现,为此才发贴,请教各位 SQL 高手 !rnrn/************分割线*************/rn[code=SQL]rn/*----用户注册表----*/rnCREATE TABLE `reg_user` (rn `id` DOUBLE ,rn `userid` DOUBLE ,rn `username` VARCHAR(20),rn `ag_id` INT ,rn `reg_time` VARCHAR(20) rn); rnINSERT INTO `reg_user` VALUES('1','1001','aaa1001','2','2012-09-01');rnINSERT INTO `reg_user` VALUES('2','1002','aaa1002','3','2012-09-01');rnINSERT INTO `reg_user` VALUES('3','1003','aaa1003','6','2012-09-01');rnrnINSERT INTO `reg_user` VALUES('4','1004','aaa1004','1','2012-09-02');rnINSERT INTO `reg_user` VALUES('5','1005','aaa1005','1','2012-09-02');rnINSERT INTO `reg_user` VALUES('6','1006','aaa1006','3','2012-09-02');rnrnINSERT INTO `reg_user` VALUES('7','1007','aaa1007','6','2012-09-03');rnINSERT INTO `reg_user` VALUES('8','1008','aaa1008','3','2012-09-03');rnINSERT INTO `reg_user` VALUES('9','1009','aaa1009','1','2012-09-03');rnrnINSERT INTO `reg_user` VALUES('10','1010','aaa1010','3','2012-09-20');rnINSERT INTO `reg_user` VALUES('11','1011','aaa1011','3','2012-09-20');rnINSERT INTO `reg_user` VALUES('12','1012','aaa1012','1','2012-09-20');rnrnINSERT INTO `reg_user` VALUES('13','1013','aaa1013','2','2012-09-21');rnINSERT INTO `reg_user` VALUES('14','1014','aaa1014','2','2012-09-21');rnINSERT INTO `reg_user` VALUES('15','1015','aaa1015','3','2012-09-21');rnrn/*----广告商----*/rnCREATE TABLE `advertisers` (rn `ag_id` DOUBLE ,rn `ag_name` VARCHAR (96)rn); rnINSERT INTO `advertisers` (`ag_id`, `ag_name`) VALUES('1','广告1');rnINSERT INTO `advertisers` (`ag_id`, `ag_name`) VALUES('2','广告2');rnINSERT INTO `advertisers` (`ag_id`, `ag_name`) VALUES('3','广告3');rnINSERT INTO `advertisers` (`ag_id`, `ag_name`) VALUES('4','广告4');rnINSERT INTO `advertisers` (`ag_id`, `ag_name`) VALUES('5','广告5');rnINSERT INTO `advertisers` (`ag_id`, `ag_name`) VALUES('6','广告6');rnrn/* 想查询出的结果为:根据每个广告商统计每天的注册人数(30天),*/rnrn广告商 2012-09-01 2012-09-02 2012-09-03 ... ... 2012-09-20 2012-09-21 ... 2012-09-30 rn广告1 0 2 1 ... ... 1 0 0 rn广告2 1 0 0 ... ... 0 2 0 rn广告3 1 1 1 ... ... 2 1 0 rn广告4 0 0 0 ... ... 0 0 0 rn广告5 0 0 0 ... ... 0 0 0 rn广告6 1 0 1 ... ... 0 0 0 rnrn[/code]rn
sql 行转列问题
可以看这个帖子。 http://www.williamsang.com/archives/1508.html
sql server行转列问题
数据库中有一个表结构是这样的rnrnidrnftypernfvaluernrn测试数据如下:rncreate table t_user(rnid int,rnftype varchar(50),rnfvalue varchar(50)rn)rninsert into t_user rnselect 1001,'first_name','z' union allrnselect 1001,'last_name','aa' union allrnselect 1002,'first_name','x' union allrnselect 1002,'last_name','bb' union allrnselect 1003,'skin','colibri' union allrnselect 1004,'first_name','t' union allrnselect 1004,'last_name','1432' rnrn要得到的查询结果是:rnrn id first_name last_namern 1001 z aarn 1002 x bbrn 1004 t 1432rnrn多谢了!
Sql 行转列问题(多表)
[code=SQL]rn--统计某一域下的承保员,类型oxrnrnselect count(rl.roleName) as num,rl.roleName from users u inner join usersinregions ur on u.indexid = ur.userid inner join regions r on ur.regionid = r.indexIdrninner join usersinroles uro on u.indexid = uro.userId inner join roles rl on uro.roleId = rl.indexId rnwhere rl.roleName like 'ox%' and r.regionName = '北京' group by roleNamernrn[/code]rnrn查询结果为:rnrn[code=SQL]rnroleName numrnox.Assessors 7rnox.Claimer 6rnox.Recorders 3rnox.Reporter 7rnox.Surveyor 9rnox.Underwriters 3rnox.Verify 7rn[/code]rnrn想要这种结果:rn[code=SQL]rnox.Assessors ox.Claimer ox.Recorders ox.Reporter ox.Surveyor ox.Underwriters ox.Verifyrn7 6 3 7 9 3 7rn[/code]
sql server 行转列问题
rn表如下rnrnID Item Contentrnrn1 测试1 a rnrn1 测试2 brnrn1 测试3 crnrn转成如下表rnrnID 测试1 测试2 测试3rn1 a b crnrn补充:我试过PIVOT ,但是Content是varchar型,不能用PIVOT语法里的聚合函数,请大家指点一下怎么实现
sql行转列问题
beginrnbegin tranrndeclare @tb tablern(rnid int identity(1,1),rnname char(10),rnDate datetimern)rndeclare @sql1 varchar(8000) rndeclare @sql2 varchar(8000) rninsert into @tb(name,date) values('abc','2008-1-1')rninsert into @tb (name,date) values('abd',getdate())rninsert into @tb (name,date) values('abe','2009-1-1')rninsert into @tb (name,date) values('abf',getdate())rninsert into @tb (name,date) values('abg','2001-1-1')rnselect * from @tb arnif(@@error<>0)rnbeginrncommit tranrnendrnelsernrollback tranrnrnendrn用以上语句创建了临时表,如何使name中的所有行 以列形式显示,谢谢
SQL行转列问题
rnrn[code=SQL]select count(*) AS 总量 ,queueid rnfrom ha_querymember where ha_querymember.status=1 group by queueidrnrnrnrn总量 queueidrn----------- -----------rn10 115rn4 123rn1 125[/code]rnrnrn希望这个 变成rn-------------------------rn 115 123 125 rn 10 4 1rnrn但是写出来不对rn[code=SQL]declare @sql1 varchar(8000)rnselect @sql1 = ' max (case queueid when ''' + cast(isnull(queueid,0) as varchar) + ''' then 总量 end) [' rn+cast(isnull(queueid,0) as varchar) + ']'rnfrom (select rn queueid from ha_querymember ) as arnset @sql1 = 'Select '+ @sql1 + ' from ( select count(*) AS 总量 ,queueid rnfrom ha_querymember where ha_querymember.status=1 group by queueid) AS b 'rnrnprint @sql1rnrnrnrnexec(@sql1)rnrnrnrn 115rn -----------rn 10 [/code]rnrn求解决下rn
sql 行转列问题 急!
sql 行转列问题 急!rnrnrn情况是这样的:rn我有两张表:TABLE1,TABLE2(用以举例,就不细述结构了)rnrnTABLE1:(主表)rnrnname pkg lotId(主键) startdate enddate ……rn张三 LQEP 1704251.10000 2010-03-02 2010-03-06rn李四 LQEP2 6770086.01600 2010-03-03 2010-03-08rn王五 LQEP3 1705932.1B000 2010-03-03 2010-03-06rnrn张三 PBGA Z0025V76B0000 2010-03-05 2010-03-10rn. . . . . rn. . . . .rn. . . . .rnrnTABLE2:rnlotId(外键) oper equipment defect qty ……rn1704251.10000 1800 BWM002 3FMD 20rn1704251.10000 1900 3D013 22 rn1704251.10000 8000 QCF001 3PDM 30rnrn6770086.01600 2500 FLM002 28rn. . . . rn. . . . rn. . . . rnrnrn目前想要实现以下功能:rn查询某段时间内(如:startdate=‘2010-03-02’ 到 enddate=‘2010-03-06’) 的所有客户的 oper信息并分组rnrn显示结果集如下:rnrnname pkg lotId startdate enddate oper1(1800) oper2(1900) oper3(2500) oper4(8000) ……rn张三 LQEP 1704251.10000 2010-03-02 2010-03-06 sum(qty)[张三1800] sum(qty)[张三1900] sum(qty)[张三2500] sum(qty)[张三8000] …… rn李四 LQEP 6770086.01600 2010-03-02 2010-03-06 sum(qty)[李四1800] sum(qty)[李四1900] sum(qty)[李四2500] sum(qty)[李四8000] …… rn王五 LQEP 1705932.1B000 2010-03-02 2010-03-06 sum(qty)[王五1800] sum(qty)[王五1900] sum(qty)[王五2500] sum(qty)[王五8000] …… rnrn说明:TABLE1和TABLE2关联键lotId(TABLE1.lotId = TABLE2.lotId),不同的lotId 拥有的oper 可能相同 也可能不同,rn如lotId:1704251.10000 有oper(1800,1900,8000……),而lotId:6770086.01600 有oper(2500,1800,7500……).rn最终显示出来的oper 会以查询数据的最大集合显示(1800,1900,2500,7500,8000……),某lotId 有该oper 就计算sum(qty),否则显示空。rn程序还要求:rn1.以name、pkg、…… 分组,此处忽略,只以name 分组;rn2.对oper 排序并显示description,如(8000→BG 此处忽略),(排序并非大小排序,另有表与之对应),此处忽略,以oper大小排序(1800,1900,2500,7500,8000……),rn此程序运行在ORACLE 环境rnrnrn分虽少还望大虾们支招啊!急!!!
SQL语句,行转列问题
有如下表:rn名称 数量rn01 10rn01 20rn01 30rn02 15rn02 25rn03 55rn04 23rn04 33rn04 43rn04 50rn..........等等名称不固定只有四个rn现在我想等到如下效果rn01 02 03 04rn-----------------------rn10 15 55 23 rn20 25 33 rn30 43 rn 50 rnrnrn就是把行转为列的效果rn
SQL行转列的问题!
用语句rnselect a.SN,a.Process_id,b.Data_id,b.MeasureData from cr_test a left join cr_data b on a.test_id = b.test_id order by a.sn,b.data_id,a.process_idrn得到记录如下rn sn process_id data_id measuredatarn 12770006 1 1 1.34rn 12770006 1 2 0.46rn 12770006 1 3 9.82rn 14061916 2 1 5.5rn 14061916 2 2 4.36rn 12770006 2 1 6.43rn 12770006 2 2 0.12rn 12770006 2 3 6.73rn 14061916 3 1 3.4rn 14061916 3 2 1.1rnrn但是这不符合客户的要求,他们的要求是rn sn process_id field1 field2 field3 field4rn12770006 1 1.34 0.46 9.82 Nullrn14061916 2 5.5 4.36 Null Nullrn12770006 2 6.43 0.12 6.73 Nullrn14061916 3 3.4 1.1 Null Nullrnrn就是在原来查询记录的基础上,把measuredata按照data_id的顺序横向排列,但是需要注意的是不同的sn可能measuredata的数目不同.如12770006有3个,14061916只有2个,因此在field3,fiels4处置为Null.但最长到field4.rnrn不知我表达清楚没有,如能解决高分相送,分有的是---------关键是项目催的紧!!!!rnrn请给出具体的sql语句,谢谢!
经典SQL问题: 行转列
情景简介学校里面记录成绩,每个人的选课不一样,而且以后会添加课程,所以不需要把所有课程当作列。数据库grade里面数据如下图,假定每个人姓名都不一样,作为主键。本文以MySQL为基础,其他数据库会有些许语法不同。数据库数据:处理后效果:下面介绍三种方法:方法一:12345SELECT DISTINCT  a.name,(SELECT score FROM grade b WHERE a.name=...
SQL行转列的问题
Tab表的结构如下:rnName Code Date Numrn张三 001 2011-01-01 1rn张三 001 2011-01-02 2rn张三 001 2011-01-03 4rn张三 001 2011-01-04 11rn张三 001 2011-01-05 0rn张三 001 2011-01-06 10rn张三 001 2011-01-07 1rn张三 001 2011-01-08 2rn。。。。。。rnrn我想根据date这个字段,得到的结果为:rnName Code 2011-01-01 2011-01-02 2011-01-03(每月的天数)rn张三 001 1 2 4rnrn就是把每月的天数转为列,得到每天的值rnrn
sql行转列的统计问题
我这有一个表SJZL_ERP_MD_GRMRYJMX[img=https://img-bbs.csdn.net/upload/201308/09/1376020166_805734.jpg][/img]rnssmd是店名,mddm是店代码,两个是一致的表示一家店,店名和点代码是唯一的,zyj总业绩就是我要统计的。如果写统计语句,统计成下面图片那样rn[img=https://img-bbs.csdn.net/upload/201308/09/1376020401_376726.jpg][/img]rn这是统计一个月的,行是店名,列是每个月的号数、合计,第一周的统计,第二周的统计、第三周的统计、第4天的统计、最高业绩、最低业绩、超三天的超千元的统计。rnrnrn大家帮帮忙,给个思路或者给个sql语句。我是新手,写这个统计有很多的困难。rn求相助rn请思路rn
Sql server 行转列问题
[img=https://img-bbs.csdn.net/upload/201505/04/1430710739_147016.png][/img]rn求大神帮忙,如何将多行数据转换成一行显示。
sql行转列的问题
类别 数量 金额rnA1 1 10rnA2 2 12rnA3 3 13rn把上面的表转换成下面的格式怎么写rnA1 数量 A1金额 A2数量 A2金额 A3数量 A3金额rn1 10 2 12 3 13rn要动态的这个只是打个比方因为类别还有很多
请教sql 行转列的问题
产品型号 物料编码rn001-557 A123rn001-557 B456rn001-557 C789rn想转成rn rn产品型号 物料编码 物料编码 物料编码rn001-557 A123 B456 C789rn的显示方式rnrn向各位求教了!
SQL 行转列问题
表结构rnrnrnid namern1 公司名称rn2 姓名rn3 数量rnrnrnrn结果rnrn1 2 3rn公司名称 姓名 数量rnrnrn
sql 行转列的问题。急。。
问题:假设有张学生成绩表(tb)如下:rn姓名 课程 分数rn张三 语文 74rn张三 数学 83rn张三 物理 93rn李四 语文 74rn李四 数学 84rn李四 物理 94rnrn想变成(得到如下结果): rn姓名 语文 数学 物理 rn张三 74rn张三 83rn张三 93rn李四 74rn李四 84rn李四 94rnrnsql 该怎么写?rn测试环境:rncreate table tb(name varchar(10) , course varchar(10) , record int)rninsert into tb values('张三' , '语文' , 74)rninsert into tb values('张三' , '数学' , 83)rninsert into tb values('张三' , '物理' , 93)rninsert into tb values('李四' , '语文' , 74)rninsert into tb values('李四' , '数学' , 84)rninsert into tb values('李四' , '物理' , 94)rn
关于Sql行转列问题
在一个试图中有如下数据rn[code=SQL]rn/*rnID Name Number AddTime UserIDrn7 时尚新闻 1 2010-02-01 00:00:00.000 110rn8 童装新闻 2 2010-02-01 00:00:00.000 110rn8 童装新闻 3 2010-02-02 00:00:00.000 110rn8 童装新闻 4 2010-02-03 00:00:00.000 110rn9 经销商动态 NULL NULL 110rn10 面料市场 1 2010-02-01 00:00:00.000 110rn11 棉花市场 1 2010-02-01 00:00:00.000 110rn12 纱线行情 NULL NULL 110rn13 羊毛市场 NULL NULL 110rn14 市场透析 NULL NULL 110rn15 缝纫设备 1 2010-02-01 00:00:00.000 110rn16 原料市场 NULL NULL 110rn17 针织市场 NULL NULL 110rn18 护照知识 NULL NULL 110rn19 爱的教育 1 2010-02-01 00:00:00.000 110rn20 爱心大使 1 2010-02-01 00:00:00.000 110rn21 超级导购 NULL NULL 110rn22 行业信息 1 2010-02-01 00:00:00.000 110rn23 外贸资讯 NULL NULL 110rn...rn*/rn[/code]rn想让它变成rn[code=SQL]rnUserID AddTime 时尚新闻 童装新闻 面料市场 棉花市场 ...rn110 2010-02-01 1 2 1 1rn110 2010-02-02 0 3 0 0rn110 2010-02-03 0 4 0 0rn111 2010-02-01 .......rn111 2010-02-02 .......[/code]rnrnrn根据UserID以及AddTime分组rnrn该怎么写SQL?rn我这样写一直有问题rn[code=SQL]declare @sql varchar(500)rnset @sql = 'select AddTime'rnselect @sql=@sql+',max(case Name when '''+[Name]+''' then isnull(Number,0) end) ['+[Name]+']'rnfrom (select distinct Name from NewsView) as arnset @sql = @sql +' from NewsView group by AddTime'rnexec(@sql)[/code]
一个sql行转列的问题
表A的数据如图下[img=https://img-bbs.csdn.net/upload/201307/23/1374563939_640087.jpg][/img]rn怎么把他转成行,如下面的图[img=https://img-bbs.csdn.net/upload/201307/23/1374564026_96987.jpg][/img],storemoney是每天详细收入。下图最左边那排序号是日期。
sql 行转列的 问题
原始表rnrn姓名 01年成绩 02年成绩 03年成绩 04年成绩rn张三 98 78 68 88rn李四 86 56 99 78rnrn结果表rnrn姓名 张三 李四rn01年成绩 98 86rn02年成绩 78 56rn03年成绩 68 99rn04年成绩 88 78rnrn上面的姓名必须是动态的 在线等
求教sql 行转列问题
有这样一个表:rnyear month monthTotalrn2012 11 6rn2012 12 13rn2011 08 20rn2011 03 9rn2010 01 24rn我现在要把每年的总计,和每月的monthTotal放在一行上,在mysql里面需要如何实现?rn下面是我想要的结果:rnyear 01 02 03 04 05 06 07 08 09 10 11 12 yearTotalrn2012 0 0 0 0 0 0 0 0 0 0 6 13 19rn2111 0 0 9 0 0 0 0 20 0 0 0 0 29rn求各位大神帮帮忙。
SQL动态行转列的问题
如题 :rn [code=SQL]rnSELECT TO_CHAR(TO_DATE(ACCEPT_TIME, 'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd') dt,rntype,rn COUNT(*)rnFROM T_LISTrnWHERE to_char(to_date(ACCEPT_TIME,'yyyy-mm-dd hh24:mi:ss'),'MM')=to_char(SYSDATE-1,'MM')rnGROUP BY TO_CHAR(TO_DATE(ACCEPT_TIME, 'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd'),typernORDER BY TO_CHAR(TO_DATE(ACCEPT_TIME, 'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd');rn [/code]rnrnrnt_list 操作流水表, type 操作类型 ACCEPT_TIME操作时间 rn查询结果 rn序号 时间 类型 总量rn1 2010-05-11 17011000 4rn2 2010-05-11 1701100001 1rn3 2010-05-12 1701100001 1rnrn查询条件为一周内起止时间rn如5月11日到17日 但不固定用户可以自己选择rnrn要求显示的结果rn[code=HTML]rn rn rn 类型rn 日期rn 总数rn rn rn rn 2010-5-11rn 2010-5-12rn 2010-5-13rn 2010-5-14rn 2010-5-15rn 2010-5-16rn 2010-5-17rn 6rn rn rn 17011000rn 4rn 0rn 0rn 0rn 0rn 0rn 0rn 4rn rn rn 1701100001rn 1rn 1rn 0rn 0rn 0rn 0rn 0rn 2rn rnrn[/code]
关于sql行转列的问题
id name pnamern2 ff 啊啊rn6 斯蒂芬 啊啊rn4 间客房 反而更rn7 哥哥 反而更rn5 龙卷风 的身份二个rn8 对方 的身份二个rn 我想把6,7,8 中的内容让它从数据库查出来就转换成一列怎么做 rn谢谢 rnrn
sql行转列问题~~~~~~~~~~~~~!!!!!!!!
表rnid1 id2 scorern1 1 50rn1 2 30rn1 3 70rn2 1 20rn2 5 80rn显示成rnid1 1 2 3 4 5rn1 50 30 70rn2 20 80rn求sql语句
求助:SQL行转列的问题
现有表rnTrainerName Session ClassName DaternBenjamin AM CRS TRAINING 2012-03-08 rnBenjamin AM CRS TRAINING 2012-03-09 rnBenjamin AM Microsoft Exchange Server 2010 2012-03-08 rnBenjamin AM Microsoft Exchange Server 2010 2012-03-09 rn需要转换成rnTrainerName Session ClassName '2012-03-08' '2012-03-09'rnBenjamin AM CRS TRAINING CRS TRAINING CRS TRAININGrnBenjamin AM Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010rnrn在线等高手帮忙!谢谢!
sql行转列问题,急死了。
CREATE TABLE T_CSDN_ONErn(rn ID INT PRIMARY KEY IDENTITY(1,1),rn DQ VARCHAR(50) rn)rn rnINSERT INTO T_CSDN_ONErnSELECT '上海' rnUNION ALLrnSELECT '北京' rnUNION ALLrnSELECT '广州' rnUNION ALLrnSELECT '深圳' rnUNION ALLrnSELECT '上海' rnUNION ALLrnSELECT '北京' rnUNION ALLrnSELECT '北京' rn如果转换为这种格式,请问麻烦么?该怎么实现?rnID 地区 上海出现次数 广州出现次数 深圳出现次数 北京出现的次数rn1 上海 2 rn2 北京 3rn3 广州 1rn4 深圳 1rn5 上海 2rn6 北京 3rn7 北京 3rnrn[img=https://img-bbs.csdn.net/upload/201305/08/1367996711_269960.jpg][/img]
sql行转列_列转行问题.
sql行转列_列转行问题.
SQL 复杂的行转列问题
1 首先声明, 源数据的表体数据是不固定的, 具体哪些门店没固定,商品也没固定rnrn我尝试了用这个语句, 但无论如何都达不到我要的效果, rnSELECT * FROM tbrn pivot(max(库存) FOR 门店 in(中山店,阳光店))arnrn这是源数据rn[img=https://img-bbs.csdn.net/upload/201409/07/1410020716_366447.jpg][/img]rnrn想要的效果rn[img=https://img-bbs.csdn.net/upload/201409/07/1410020743_975469.jpg][/img]rnrn哪位知道SQL要如何写吗? 急用,非常感谢.
请教SQL 行转列问题
原数据如下rn[img=http://hiphotos.baidu.com/%C1%BD%B5%B0%D2%BC%D0%C9/pic/item/84f7fe5d8f8b44780df3e34b.jpg][/img]rnrnrn现在想得到 下面的结果rn[img=http://hiphotos.baidu.com/%C1%BD%B5%B0%D2%BC%D0%C9/pic/item/1c8fcee30148674b2797915c.jpg][/img]rnrn有谁能解答一下吗?谢谢啦
行转列--SQL语句问题
初学ORACLE,请各位大侠多指教:rnMSSQLSERVER2000可以这样:rn=============rnbegin tranrncreate table TEST(dt datetime primary key, num int)rninsert into test values('20010101',10)rninsert into test values('20010201',20)rninsert into test values('20020101',30)rninsert into test values('20020201',40)rninsert into test values('20030101',50)rninsert into test values('20000101',60)rnselect * from testrnselect sum(case when dt between '20000101' and '20001231' then num else 0 end) as '2000', rn sum(case when dt between '20010101' and '20021231' then num else 0 end) as '2001',rn sum(case when dt between '20020101' and '20031231' then num else 0 end) as '2002',rn sum(case when dt between '20030101' and '20041231' then num else 0 end) as '2003'rnfrom testrnrollback rn=======rnrn部分结果:rndt num rn------------------------------------------------------ ----------- rn2000-01-01 00:00:00.000 60rn2001-01-01 00:00:00.000 10rn2001-02-01 00:00:00.000 20rn2002-01-01 00:00:00.000 30rn2002-02-01 00:00:00.000 40rn2003-01-01 00:00:00.000 50rnrn(所影响的行数为 6 行)rnrn2000 2001 2002 2003 rn----------- ----------- ----------- ----------- rn60 100 120 50rnrn这样就可以将行转为列了。rn以上我只是为了说明问题举的一个简单例子,oracle 中可以使用decode加年度函数再跟‘2000’、‘2001’、‘2002’、‘2003’等进行比较,也可能达到效果。rn但我的意思范围匹配,或者条件匹配,如:rncase when A > 1 then 1 else 2 end , ... 等rnrn请问怎样处理?rn多谢!rnrn
加急!sql 行转列问题
表结构如下:rnrn[code=SQL]rnCREATE TABLE [dbo].[CrawleResult](rn [ProductCode] [varchar](13) COLLATE Chinese_PRC_CI_AS NULL,rn [SiteId] int COLLATE Chinese_PRC_CI_AS NULL,rn [uri] [varchar](400) COLLATE Chinese_PRC_CI_AS NULL,rn [ProductName] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,rn [ProductPrice] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,rn [ProductPriceImage] [varbinary](max) NULL,rn [ProductPriceIsImage] [varchar](1) COLLATE Chinese_PRC_CI_AS NULL,rn [CrawleTime] [datetime] NULL,rn [State] [varchar](1) COLLATE Chinese_PRC_CI_AS NULLrn) ON [PRIMARY]rn[/code]rn数据:rn[code=SQL]rninsert into crawleresult values('1000',1,'http://www.yihaodian.com/product/detail.do?productID=1006397&merchantID=1','摩托罗拉ME600(Motus)后空翻银色手??nbsp;','1945',null,'0','2011-01-24 17:14:19.000','1')rninsert into crawleresult values('1000',2,'http://www.yihaodian.com/product/detail.do?productID=1006397&merchantID=1','摩托罗拉ME600(Motus)后空翻银色手??nbsp;','1946',null,'0','2011-01-24 18:14:19.000','1')rninsert into crawleresult values('1000',3,'http://www.yihaodian.com/product/detail.do?productID=1006397&merchantID=1','摩托罗拉ME600(Motus)后空翻银色手??nbsp;','1947',null,'0','2011-01-24 19:14:19.000','1')rninsert into crawleresult values('2000',1,'http://www.yihaodian.com/product/detail.do?productID=1006397&merchantID=1','摩托罗拉ME600(Motus)后空翻银色手??nbsp;','1948',null,'0','2011-01-24 11:14:19.000','1')rninsert into crawleresult values('2000',2,'http://www.yihaodian.com/product/detail.do?productID=1006397&merchantID=1','摩托罗拉ME600(Motus)后空翻银色手??nbsp;','1949',null,'0','2011-01-24 10:14:19.000','1')rninsert into crawleresult values('2000',3,'http://www.yihaodian.com/product/detail.do?productID=1006397&merchantID=1','摩托罗拉ME600(Motus)后空翻银色手??nbsp;','1940',null,'0','2011-01-24 12:14:19.000','1')rninsert into crawleresult values('2000',4,'http://www.yihaodian.com/product/detail.do?productID=1006397&merchantID=1','摩托罗拉ME600(Motus)后空翻银色手??nbsp;','1941',null,'0','2011-01-24 16:14:19.000','1')rn[/code]rnrnrn需要得到如下结构:rnrn商品条码(productcode) 名称(productname) 日期(crawleTime) 1号网店价格 2号网店价格 3号网店价格.....n号网店价格rnrnrn一个商品条码 对应一条记录。。。 对于同一商品条码 上面的日期取最近的那个日期。。。rnrnrn
sql 行转列 问题
[code=SQL]rn--测试代码--rncreate table product(id int not null primary key identity(1,1),name varchar(50),rnjiage varchar(50),changdi varchar(50),leibie varchar(50))rnrninsert into product(name,jiage,changdi,leibie) values('苹果','5元','浙江','水果')rninsert into product(name,jiage,changdi,leibie) values('香蕉','20元','上海','水果')rninsert into product(name,jiage,changdi,leibie) values('黄瓜','1元','浙江','蔬菜')rninsert into product(name,jiage,changdi,leibie) values('西红柿','2元','浙江','蔬菜')rnrn[/code]rn[code=SQL]rn--我的代码--rnselectrnsum(case leibie when '水果' then cast(substring(jiage,1,len(jiage)-1) as int) end) as 水果,rnsum(case leibie when '蔬菜' then cast(substring(jiage,1,len(jiage)-1) as int) end) as 蔬菜rnfrom product group by leibiern/*rn水果 蔬菜rnNULL 3rn25 NULLrn--怎么把null去掉 就只有一行,不要两行呢?--rn*/rn[/code]
Sql行转列问题
tb_A:rn col1 col2 rn a 100 rn aa 300 rnrn得到结果rntb_Brn a aarn 100 200 rnrn
MS SQL 行转列的问题
联合查询后得到如下下表:rnrnrnFbillno Finterid Fstatus Fitemid Fauxqty Fdate Fqtyrn rnWORK005525 6595 3 28086 100.0000000000 2012-05 100.0000000000rnWORK005526 6602 3 28090 300.0000000000 2012-05 174.0000000000rnWORK005526 6602 3 28090 300.0000000000 2012-06 126.0000000000rnrnrnFdate字段是变动的,我想得到如下结果:rn请教如何实现,谢谢!rnrnFbillno Finterid Fstatus Fitemid Fauxqty 2012-05 2012-06 Fqtyrn rnWORK005525 6595 3 28086 100.0000000000 100 0 100rnWORK005526 6602 3 28090 300.0000000000 174 126 300
sql行转列的问题,急死了。。。
类型 编号 vit次数 pit次数 ait 次数 rnrnpit 1001 2 1 1rnvit 1001 2 1 1rnvit 1001 2 1 1rnait 1001 2 1 1rnvit 1002 1 0 0rn如上表所示,查出来某一个编号对应的三种类型,分别出现的次数做一个统计,搞了一下午,么搞出来。rn请大侠们帮帮忙。。。谢谢
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数