社区
数据库相关
帖子详情
delphi access数据库操作,如何行转列显示
hk2009
2011-09-14 04:28:43
access数据库中有一组数据
A1 B1
aaa 1
aaa 2
aaa 3
aaa 4
这是个关系对应表。
我想要的结果是:
在DBgrid中用显示两个列,如下:
L1 L2
aaa 1,2,3,4
既B1列中的数据链接显示在一个列中。请指教,谢谢。
...全文
211
6
打赏
收藏
delphi access数据库操作,如何行转列显示
access数据库中有一组数据 A1 B1 aaa 1 aaa 2 aaa 3 aaa 4 这是个关系对应表。 我想要的结果是: 在DBgrid中用显示两个列,如下: L1 L2 aaa 1,2,3,4 既B1列中的数据链接显示在一个列中。请指教,谢谢。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tgbd
2011-09-14
打赏
举报
回复
ACCESS的行列转换一般用transform,楼主可以查找一下,但楼主要的这种效果,不是简单地一步就可得到这种结果。
先通过transform生成标准的行列转换,再从这个结果中组合一下,看看是否可以满足。
hk2009
2011-09-14
打赏
举报
回复
[Quote=引用 4 楼 xfxlylove 的回复:]
-- 经典SQL行列转换
-- http://www.programbbs.com/doc/4885.htm
/*
标题:普通行列转换(version 2.0)
说明:普通行列转换(version 1.0)仅针对sql server 2000提供静态和动态写法,version 2.0增加sql server 2005的有关写法。
问题:假设有张学生成绩表(tb)如下:
姓名 课程 分……
[/Quote]
这个case when then end。我用过,查了下,Access不支持,只支持IIf
THQWS
2011-09-14
打赏
举报
回复
-- 经典SQL行列转换
-- http://www.programbbs.com/doc/4885.htm
/*
标题:普通行列转换(version 2.0)
说明:普通行列转换(version 1.0)仅针对sql server 2000提供静态和动态写法,version 2.0增加sql server 2005的有关写法。
问题:假设有张学生成绩表(tb)如下:
姓名 课程 分数
张三 语文 74
张三 数学 83
张三 物理 93
李四 语文 74
李四 数学 84
李四 物理 94
想变成(得到如下结果):
姓名 语文 数学 物理
---- ---- ---- ----
李四 74 84 94
张三 74 83 93
-------------------
*/
create table tb(姓名 varchar(10) , 课程 varchar(10) , 分数 int)
insert into tb values('张三' , '语文' , 74)
insert into tb values('张三' , '数学' , 83)
insert into tb values('张三' , '物理' , 93)
insert into tb values('李四' , '语文' , 74)
insert into tb values('李四' , '数学' , 84)
insert into tb values('李四' , '物理' , 94)
go
--SQL SERVER 2000 静态SQL,指课程只有语文、数学、物理这三门课程。(以下同)
select 姓名 as 姓名 ,
max(case 课程 when '语文' then 分数 else 0 end) 语文,
max(case 课程 when '数学' then 分数 else 0 end) 数学,
max(case 课程 when '物理' then 分数 else 0 end) 物理
from tb
group by 姓名
--SQL SERVER 2000 动态SQL,指课程不止语文、数学、物理这三门课程。(以下同)
declare @sql varchar(8000)
set @sql = 'select 姓名 '
select @sql = @sql + ' , max(case 课程 when ''' + 课程 + ''' then 分数 else 0 end) [' + 课程 + ']'
from (select distinct 课程 from tb) as a
set @sql = @sql + ' from tb group by 姓名'
exec(@sql)
--SQL SERVER 2005 静态SQL。
select * from (select * from tb) a pivot (max(分数) for 课程 in (语文,数学,物理)) b
--SQL SERVER 2005 动态SQL。
declare @sql varchar(8000)
select @sql = isnull(@sql + ',' , '') + 课程 from tb group by 课程
exec ('select * from (select * from tb) a pivot (max(分数) for 课程 in (' + @sql + ')) b')
---------------------------------
/*
问题:在上述结果的基础上加平均分,总分,得到如下结果:
姓名 语文 数学 物理 平均分 总分
---- ---- ---- ---- ------ ----
李四 74 84 94 84.00 252
张三 74 83 93 83.33 250
*/
上面是例子。看懂了就容易
究天人之际
2011-09-14
打赏
举报
回复
查询出来,自己拼一下呗
hk2009
2011-09-14
打赏
举报
回复
会就自己转了
bdmh
2011-09-14
打赏
举报
回复
自己本地转吧
Delphi
环境下
Access
数据库
中OLE对象的读写
操作
(论文)
分析了
Access
数据库
OLE 对象的特点,并给 出了在
Delphi
环境下实际实现OLE对 象的保存\打 开与
显示
的处理方法(A ccess 数 据库 中 O LE 对象 的读 写操 作 许 俊 论文)
delphi
压缩修复
access
数据库
delphi
操作
access
2007|2003数据,实现创建、压缩、修复、修改密码! 如果提示连接错误或您没有安装Microsoft.ACE.OLEDB.12.0,请自行去微软下载安装
数据库
引擎!
delphi
7
操作
Access
数据库
完整实例
delphi
7
操作
Access
数据库
完整实例
Delphi
修复或压缩
Access
数据库
.rar
Delphi
修复或压缩
Access
数据库
,对
Access
进行数据压缩,减少体积,并对常规错误进行修复。运行程序时请注意:要关闭所有正在运行的程序。
DELPHI
全
操作
ACCESS
数据库
详见readme.txt
数据库相关
2,507
社区成员
88,454
社区内容
发帖
与我相关
我的任务
数据库相关
Delphi 数据库相关
复制链接
扫一扫
分享
社区描述
Delphi 数据库相关
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章