数据库:这个问题,应该如何实现呢?

waysoft 2003-09-13 10:17:05
一个表如下
a,b,c
1,1,x
2,1,x
1,2,x
2,2,x
...
其中,列a,b的值为有限个(例如不超过30个),但具体的个数不确定,列c为任意值

怎样把上表转换下面的种形式呢?不一定在数据库中,只要最终能在DBGRid中显示就行。

a,b1,b2,...
1,x,x,...
2,x,x,...
...

b1代表b=1时c的值,b2代表b=2时c的值
...全文
24 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
waysoft 2003-10-11
  • 打赏
  • 举报
回复
为了便于修改和保存啊。

你好象没说完,光这几条语句连最基本的也实现不了。
u2a 2003-10-10
  • 打赏
  • 举报
回复
GetAllValOfC;
TstringDrid.rows[0].add('a');
...
TStringGrid.rows[1].add('1')
u2a 2003-10-10
  • 打赏
  • 举报
回复
为什么非要在DBGRid中显示,TstringGrid一样显示
waysoft 2003-10-08
  • 打赏
  • 举报
回复
up
waysoft 2003-09-27
  • 打赏
  • 举报
回复
to: chenwc(海市蜃楼)

没大看明白,说一下思路吧,具体的语句我可以自己试。
phoenixdingz 2003-09-16
  • 打赏
  • 举报
回复
这需要建立个临时表,来保存最后结果所需要的字段数
路人陈 2003-09-16
  • 打赏
  • 举报
回复
adoquery.sql.text:= 'select b ,c from tab order by b '
if recordcount > 0 then
for i:= 0 to recordcount - 1 do
begin
x:= adoquery.fieldbyname('c').asinteger;
y:= adoquery.fieldbyname('c').asinteger;
sql1:= 'c as b' + x + ',';//要去掉最后一个逗号
sql2:= 'b' + x = y;

sql:= 'select' + sql1 +'from 表名' + 'where '+ sql2;

后面就好做了
路人陈 2003-09-16
  • 打赏
  • 举报
回复
我来给你写,稍等一下
qingke21 2003-09-16
  • 打赏
  • 举报
回复
你用的是什麽数据库阿 ,挺麻烦的!
waysoft 2003-09-15
  • 打赏
  • 举报
回复
当然有意义,用户看到的结果更简明。
waysoft 2003-09-13
  • 打赏
  • 举报
回复
如果不是oracle呢?最好是通用的语句。
ahalf 2003-09-13
  • 打赏
  • 举报
回复
oracle的分析函数很容易实现行列转换
sy_315 2003-09-13
  • 打赏
  • 举报
回复
这么做有意义么?
用别名改变
waysoft 2003-09-13
  • 打赏
  • 举报
回复
waysoft 2003-09-13
  • 打赏
  • 举报
回复
没人了么?

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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