SQL语句实现横排?

foxconn80 2003-05-25 06:33:08
请教各路高手?
有一个表:
BH GZLB JE
----------------------
001 A 100
001 B 150
001 C 110
002 A 99
002 B 180
002 C 150
003 A 160
003 B 170
003 C 130
用SQL语句如何将上面的表变成下面横向的排列方式呢。
BH A B C
-------------------
001 100 150 110
002 99 180 150
003 160 170 130
(GZLB 里面的字段是动态的,不是只有A,B,C 可能还有A,B,C,D,E...)
...全文
74 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
foxconn80 2003-05-26
  • 打赏
  • 举报
回复
你把工资类别写死了。能不能写活一点呢。
zsforever 2003-05-26
  • 打赏
  • 举报
回复
select bh, sum(case GZLB when 'a' then JE else null end)[a],sum(case GZLB when 'b' then JE else null end)[b],sum(case GZLB when 'c' then JE else null end)[c] from table_test group by bh

这是个静态的,大力的代码前面也就是为了得到这些变量而设的!
强烈支持 大力 。
foxconn80 2003-05-26
  • 打赏
  • 举报
回复
感谢各路高手指点,此问题我已经解决了。
zsforever 2003-05-26
  • 打赏
  • 举报
回复
declare @sql varchar(6000)
set @sql = 'select bh, '//不同
select @sql = @sql +' sum(case GZLB when '''+ GZLB +''' then JE else null end) ['+ GZLB +'],' from (select distinct GZLB as GZLB from tblA) tmp
set @sql = substring(@sql, 1, len(@sql)-1) +' from tblA group by BH'
exec(@sql)
大力的第二行这么写可以得到编号列
guanhua8 2003-05-26
  • 打赏
  • 举报
回复
强烈支持(大力),你的基础不够哦
yoki 2003-05-26
  • 打赏
  • 举报
回复
这个是动态的呀
declare @sql varchar(6000)
set @sql = 'select '
select @sql = @sql +' sum(case GZLB when '''+ GZLB +''' then JE else null end) ['+ GZLB +'],' from (select distinct GZLB as GZLB from tblA) tmp
set @sql = substring(@sql, 1, len(@sql)-1) +' from tblA group by BH'
exec(@sql)
jsyhello 2003-05-26
  • 打赏
  • 举报
回复
select bh,
sum(case when GzLB='A' then JE else 0 end) as A,
sum(case when GzLB='B' then JE else 0 end) as B,
sum(case when GzLB='C' then JE else 0 end) as C
from 表名
group by bh
pengdali 2003-05-26
  • 打赏
  • 举报
回复
declare @sql varchar(6000)
set @sql = 'select '
select @sql = @sql +' sum(case GZLB when '''+ GZLB +''' then JE else null end) ['+ GZLB +'],' from (select distinct GZLB as GZLB from tblA) tmp
set @sql = substring(@sql, 1, len(@sql)-1) +' from tblA group by BH'
exec(@sql)


---------------------
你把工资类别写死了。能不能写活一点呢

re: 你仔细看看有没有写死?
snowfox_yy 2003-05-26
  • 打赏
  • 举报
回复
上面有一点错误
用游标
declare @sqlstr varchar(2000)
declare @gzlb
select sqlstr='select bh'
declare cgzlb cursor for select gzlb from table
create table #a
(bh char(3))
open cgzlb
fetch next from cgzlb into @gzlb
while (fetch_status<>-1)
begin
exec('alter table #a add '+@gzlb +' char(1)')
exec('insert into #a (bh,'+@gzlb+' select bh,je from table where gzlb='''+@gzlb+'''')
select @sqlstr=@sqlstr+',sum(isnull('+@gzlb+',0))'


fetch next from cgzlb into @gzlb
end
close cgzlb
deallocate cgzlb
select @sqlstr=@sqlstr+' from #a group by bh order by bh
execute(@sqlstr)
snowfox_yy 2003-05-26
  • 打赏
  • 举报
回复
用游标
declare @sqlstr varchar(2000)
declare @gzlb
select sqlstr='select bh'
declare cgzlb cursor for select gzlb from table
create table #a
(bh char(3))
open cgzlb
fetch next from cgzlb into @gzlb
while (fetch_status<>-1)
begin
exec('alter table #a add '+@gzlb +' char(1)')
exec('insert into #a (bh,'+@gzlb+' select bh,je from table where gzlb='''+@gzlb+'''')
select @sqlstr=@sqlstr+',sum(isnull('+@gzlb+'))'


fetch next from cgzlb into @gzlb
end
close cgzlb
deallocate cgzlb
select @sqlstr=@sqlstr+' from #a group by bh order by bh
execute(@sqlstr)
jsyhello 2003-05-26
  • 打赏
  • 举报
回复
动态的好,强烈支持 大力
不知数据量很大时,它的执行效率如何?
以前,我是通过delphi的表格,实现数据横排的,解决了开发程序通用查询问题
HawaiiLeo 2003-05-25
  • 打赏
  • 举报
回复
if exists(select name from sysobjects where name='tblA' and xtype='U')
drop table tblA
if exists(select name from sysobjects where name='tmp' and xtype='U')
drop table tmp

create table tblA(
BH char(3) not null,
GZLB varchar(3) not null,
JE int not null
)
go

insert tblA values('001', 'A', 100)
insert tblA values('001', 'B', 150)
insert tblA values('001', 'C', 110)
insert tblA values('002', 'A', 99)
insert tblA values('002', 'B', 180)
insert tblA values('002', 'C', 150)
insert tblA values('003', 'A', 160)
insert tblA values('003', 'B', 170)
insert tblA values('003', 'C', 130)

declare @sql varchar(600)
set @sql = 'select'
select distinct GZLB as 'GZLB' into tmp from tblA


select @sql = @sql +' max(case GZLB when '''+ GZLB +''' then JE else null end) as '''+ GZLB +''',' from tmp
set @sql = substring(@sql, 1, len(@sql)-1) +' from tblA group by BH'
exec(@sql)
HawaiiLeo 2003-05-25
  • 打赏
  • 举报
回复
if exists(select name from sysobjects where name='tblA' and xtype='U')
drop table tblA

create table tblA(
BH char(3) not null,
GZLB varchar(3) not null,
JE int not null
)
go

insert tblA values('001', 'A', 100)
insert tblA values('001', 'B', 150)
insert tblA values('001', 'C', 110)
insert tblA values('002', 'A', 99)
insert tblA values('002', 'B', 180)
insert tblA values('002', 'C', 150)
insert tblA values('003', 'A', 160)
insert tblA values('003', 'B', 170)
insert tblA values('003', 'C', 130)

declare @sql varchar(600)
set @sql = 'select'
select distinct GZLB as 'GZLB' into tmp from tblA


select @sql = @sql +' max(case GZLB when '''+ GZLB +''' then JE else null end) as '''+ GZLB +''',' from tmp
set @sql = substring(@sql, 1, len(@sql)-1) +' from tblA group by BH'
exec(@sql)
科汛cms(Kesioncms)是基于采用网络中已经成熟、稳定的技术ASP+ACCESS(SQL2000/2005)开发而成,利用本系统您可以很方便地管理自己的网站。本系统是一款由文章、图片、下载、分类信息、商城、求职招聘、影视、动漫(flash)、音乐、广告系统、个人/企业空间、小型互动论坛、友情链接、公告、调查等20多个功能模块,并集成自定义模型、自定义字段等功能组合而成的强大、易用、扩展性强的开源网站管理软件。 我们认为“简单就是美”,因此一直以来,科汛开发人员在开发过程中无处不充分考虑用户的使用习惯,尽最大可能降低用户的使用门槛,让用户关注于内容维护本身, 而不需要投入过多的时间来学习系统的使用技巧,在细节处下大工夫。 Kesioncms系统功能完善,覆盖面广、扩展性强、负载能力好、模板调用非常灵活、管理方便,因此不仅适合于建设一般企业、政府、学校、个人等小型网站,同时也适合于建设地方门户、行业门户、收费网站等大中型网站。 主要特性: 1、系统采用模块化开发,可自由屏蔽暂时没有用到的功能模型,同时又是一款100%开源的程序,二次开发更方便。 2、系统支持整站生成HTML静态和动态ASP 整个系统都可以生成静态HTML,有效的提高了系统的性能,不仅减轻服务器的负载提高搜索收录率,增加网站收录。同时也可以实现内容收费和访问权限控制。 超多种生成文件命名形式可供选择,您可以随心所欲的设置要生成的扩展名,一切更可能的根据您的喜好DIY。 经过开发人员的优化,生成速度非常快,操作便捷。生成文件名以倒序方式生成:如index_100.html,index_99.html,index_88.html,自由设置每次生成的页数! 这种好处当您的栏目下有上万篇文章时越是明显,因为每次生成时不需要将所有页面重新生成一次,只需要根据预设定的生成最新更新的记录即可! 3、 系统由文章、图片、下载、分类信息、商城、求职招聘、影视、动漫(flash)、音乐、广告系统、个人/企业空间、小型互动论坛、友情链接、公告、调查等20多个功能模块组成。 用户可以选择性的购买和安装所需功能模块,而且还可以根据自定义模型、自定义字段功能开发新的功能模块,如房产系统,企业调查,在线报名等系统以满足个性化需求。 4、 网站模板与程序分离,支持多种标签调用,支持DIV+CSS,通过模板设计便可实现个性化网站 科汛cms实现了“网站模板与程序完全分离”的新概念,独创ajax输出和JS标签跨站调用,支持不同频道、栏目、专题、内容页应用不同的模板,支持批量绑定模板,模板换肤更是一键之谈。 模板制作也非常方便,用户可以发布自己制作的模板,也可以下载安装他人分享的模板。 不需写任何一行代码,可以使用自己熟悉的工具,如Frontpage、Dreamwaver等来制作模板。用户完全可以自行设计模板,从而更好的体现用户的个性和特色。 5、上传文件清理大大节约空间资源:系统后台可以根据管理员操作的项目来清理无效、过期的文件,从而大大节约了空间,节约了成本。 6、支持无限级栏目,可绑定二级域名,而且各栏目下的数据可以移动、合并 7、系统支持自定义模型,自定义字段,用户可根据需要基于文章、下载、图片模型创建新的频道,可轻松建站如房产,在线报名等系统功能,帮助用户轻松建立大型站点。 所以,您不需要懂代码,无需编程便可轻松扩展系统功能满足个性化需求 8、自定义字段功能:可自由设置字段类型、字段类型(单行文本、多行文本、下拉列表、数字、日期、单选按钮、多选按钮、电子邮箱、文件)、表单选项限制(功能启用时间限制、是否只允许会员提交、每个会员是否只允许提交一次),可按自定义字段搜索和排序。会员注册和各频道都支持自定义字段功能,用户可根据需要设置自定义字段扩展功能满足个性化需求。 9、全站所有模型支持Tags标签,主动式信息分类让信息相互链接,提高站点 PV 10、支持自定义SQL标签调用,可自由设定数据源,从而调用除Kesioncms系统外的其它外部数据库资源,并且调用的其它外部数据可以分页。 11、相关链接可根据关联条件查询。 12、支持频道绑定独立域名、各频道数据分表存储、自定义字段、后台按频道分级管理,帮助用户轻松建立大型站点。 13、支持频道绑定独立域名、各频道数据分表存储、自定义字段、后台按频道分级管理,帮助用户轻松建立大型站点。 14、支持在线支付和充值卡充值功能,可选择支付宝、网银在线等支付平台,提供完善的财务管理功能和消费明细,每个栏目都可以进行完善的权限设定(浏览、查看、投稿发表等各种权限)和内容收费,可帮助用户轻松建立电子商务网站。 15、提供API整合接口,可整合主流论坛、博客等软件,轻松实现多个程序紧密结合。 可同时整合动网论坛、oblog等第三方软件,轻松实现会员一站通,帮助用户轻松实现“cms + 论坛 + 博客”的多功能门户方案。 16、提供utf-8编码和语言包,可建设国际化站点 同时提供GBK和UTF-8软件包,用户可以根据需要把模板和语言包翻译成其他语言,为多语言环境的开发提供了便利,助你的站点迈向世界。 17 、支持多级管理权限控制,让网站多人维护更轻松 系统支持按频道和模块分别设置栏目管理员和模型管理员,同时还可以根据需求分配不同的权限给他们进行管理,帮助用户轻松实现网站多人维护。 18、多重安全机制和权限控制,为网站安全保驾护航 支持后台访问目录更名、Cookie加密、验证码、认证码、IP锁定、IP白名单、防SQL注入、防跨站脚本、防脚本文件上传等多重安全机制,并且后台支持按频道和模块严格控制访问权限,为网站的安全运营提供最强有力的保障。 19、独创标签AJAX输出,采用无刷新ajax分页技术,不仅栏目生成速度大大提高,还有效的防止列表被采集,标签可支持ajax->table,ajax->div+css,table,div+css四种调用方式,独创标签导入导出功能,让您更方便标签的共享、备份等操作。 20、百度、GOOGLE站点地图功能,生成和自动更新提交站点最新信息,可以大大的提高收录量。 21、强大的(信息)采集系统,可采文章信息,方便用户系统性的收集信息,使用简单,只需懂点html基础代码即可;支持内容、列表分页采集、多重过滤和内容字符替换:支持远程保存图片、批量入库操作、可预览采集结果。 22、圈子功能:圈子又称群组,此功能对调动用户积极性,挖掘相同爱好的博友推波助澜。每个圈子都有独立的模板和管理员,娱乐,学习,互动,随意创建,用户体验非常好。 23、DIGG功能:Digg中文翻译为“鼎革”,或者“顶格”, 它采取的是用户驱动的机制,通过一种类似民主投票的方式来表示对信息的支持和认可,使得被digg多的信息脱颖而出,出现在digg页面上。众多用户对此功能的评价是时尚+实用。 24、评论功能:网站是供大家交流的平台,后台可以启用审核与非审核模式。当有不合适不合时的言论,管理员只需审核这些评论即可,这一功能,大大减少了管理员的工作量,维护了网站的正常运行。 可以对任意频道和模块里的任意内容附加评论,支持评论中加入表情图标,可对单一评论回复和投鲜花鸡蛋,支持是否开启评论,游客回复等; 25、相册功能:用户可以开通相册,上传并管理自己的靓照。 26、系统具有强大的数据库字段替换功能;强大的在线执行SQL语句功能。 27、强大的数据备份和恢复功能,可以在线备份、恢复、压缩数据库。 28、评论独创Ajax让发表评论更为方便。用户体验的新突破,有效地提高用户讨论的兴趣。 29、支持广告类型:gif图片广告、FLASH广告、文字广告、HTML代码广告。 支持7种广告位显示方式: 页内嵌入循环:就是将广告位直接置入某页面一固定位置,并在同一位置循环显示广告位中的所有正常广告条,这样,每刷新一次就会更替显示一个新的广告条 上下排列置入:从上到下竖排广告位中的所有正常广告条 左右排列置入:从左到右横排广告位中的所有正常广告条 向上滚动置入:向上滚动显示广告位中的所有正常广告条 向左滚动置入:向左滚动显示广告位中的所有正常广告条 弹出多个窗口:页面打开时同时弹出多个窗口,每个窗口内显示一个广告条,弹出数量跟该广告位中的正常广告条数一致 循环弹出窗口:页面打开时同时弹出一个窗口,在同一窗口内循环显示广告位中的正常广告,这样,每刷新一次就会在弹出窗口中更替显示一个新的广告条 只需后台修改广告即可更新广告;可设置广告过期时间,通用于站内所有位置调用,让你的站点处处体现商机。 30、多种导航菜单管理(普通导航菜单,顶部菜单,树形菜单),可根据网站需要自行选择导航方式,更加方便。 31、后台操作日志管理,完整记录所有后台操作,可通过日志查出非法操作记录提供证据。 32、保存远程图片,添加或采集信息时,可选择远程保存图片到本地服务器,防止对方删除图片或者服务器不正常时图片不显示。 33、水印缩略图,可按要求等比缩小,可按要求在指定位置加图片或文字水印,提升内容被转载后的宣传机会。 34、两种编辑器选择,可视化编辑器,类似word的所件即所得的在线内容编辑功能,支持表格、图片、FLASH、多种格式播放器插入,支持图片和附件上传。 35、字符过滤,自动过滤敏感字符,避免损害网站形象、避免网站被公安机关强制关闭。 36、关联链接,自由设置站内关联链接,自动给内容中的一些关键词加上链接,引导浏览者查看更多内容,提高网站黏度; 37、数据库字段替换,可批量替换各个数据表中指定字段的内容,快速纠正错误。 38、强大的会员互动功能 支持企业会员和个人会员 支持会员注册、登录、退出、审核、锁定、资料修改等基本功能; 支持新会员注册时多种验证方式,邮件验证、管理员审核、密码找回; 支持一个会员账号只允许一个会员登录,可以有效防止一个会员账号多人使用的情况; 支持自定义会员注册自段,轻松地收集所需的会员资料; 支持会员登录时是否需要验证码; 支持自定义会员组 支持注册会员赠送资金、积分、点券、有效期等计费方式并可兑换产品; 支持新会员注册时发送站内短信通知 支持在后台预设注册时禁止使用的用户名 支持与第三方软件如论坛整合,轻松实现cms与论坛会员同步注册、登录和退出; 支持前台会员投稿功能,可以让会员好的东西与大家分享 支持发送站内短信,邮件群发 支持我的收藏,我发表的评论管理 支持会员点券,有效期,资金明细,充值卡管理等 39、友情链接 支持链接分类、支持前台申请后台审核,支持按文字、logo等多种方式显示,可统计点击次数; 40、 站内调查模块 可设置单选或多选,可设置投票的有效期限,可限制同一IP在24小时内只能进行一次投票; 41、 单页面 可创建单个网页,模板和html生成路径都可以自定义。例如:公司介绍、联系我们等,在各种网站均能应用。 42、留言本(小型互动论坛) 访问者可以发表留言咨询,管理员可在后台进行回复,实现访可与管理员的互动交流; 43、 自定义网页 由于现有的页面都是开发人员根据一定的需求模型设计的,可能难以满足网站的个性化需求;您可以通过此功能自己定义网页,并通过模板和标签来控制该页面的内容,以满足个性需求。 44、文章页有上一篇,下一篇,长文章可以自动分页,信息量大,适合搜索引擎收录。 45、下载系统采用服务器管理方案,支持Web迅雷,FlashGet联盟等的专用下载,帮助用户轻松建立专业下载网站。 46、全新引入Application+XML缓存机制,大大提高了系统的生成速度及运行效率 47、全站所有频道(只要涉及到图片)均可自动添加水印及生成缩略图功能及幻灯片功能。 48、影视系统支持多种格式(如:.rm,.rmvb,.ra;.wmv,.avi,.asf,.wm等),还支持当前最流行的Flv格式,支持会员上传功能,极有力的增强站内互动。 49、系统集成CC视频插件,其它还有很多的细节功能,大家使用过程中慢慢就知道了...... 总之:科汛内容网站管理系统适合于各级政府机关、教育机构、组织协会、媒体、企事业单位用来建设地区门户、行业门户、单位内网和外网和收费网站等。从2006年发布至今得到了广大用户的认可及支持,而我们的Kesioncms管理系统也必将成为您建设网站及网站运营的最佳选择。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧