DBGrid显示的问题

sailer_shi 2004-04-26 10:05:55
比如说我得数据平常显示为:
编号 姓名 学期 语文 数学
1 张三 一学期 65 85
1 张三 二学期 85 80
1 张三 三学期 70 82
……………………
怎么才能显示成:
编号 姓名 学期 语文 数学
1 张三 一学期 65 85
二学期 85 80
三学期 70 82
……………………
这个样子呀?
...全文
42 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sailer_shi 2004-04-28
  • 打赏
  • 举报
回复
baby19820917 你能说的在清楚些吗?
lzy6204 2004-04-28
  • 打赏
  • 举报
回复
写SQL语句肯定可以实现
jinjazz 2004-04-28
  • 打赏
  • 举报
回复
treeview
S.F. 2004-04-28
  • 打赏
  • 举报
回复
自己写入表格就可以;别的办法没什么了。
yusi009 2004-04-28
  • 打赏
  • 举报
回复
用StringGrid实现就简单多了 我也觉的是这样的 你可以试试呀
wuzhijie 2004-04-28
  • 打赏
  • 举报
回复
用StringGrid实现就简单多了
Dreamnest 2004-04-28
  • 打赏
  • 举报
回复
以前我写的一个存储过程,和你说的基本相同,你看下能不能用得上,
如有Table1
ItemID, ItemTypeID,项目类别(ItemType) 项目名称(ItemName)
1 1 外观 长度
2 1 外观 宽度
3 2 温度 里面温度
4 2 温度 外面温度

说明:ItemID为自动编号
ItemTypeID 为类别ID号


//建立存储过程如下:
CREATE PROCEDURE PROCEDURE1
AS

SELECT DISTINCT ItemTypeID,ItemType INTO #TMP01 FROM table1

CREATE TABLE #Result(
[ItemID][int],
[TypeID][int],
[ItemTypeID][int],
[ItemType][varchar](50),
[ItemName][varchar](50),
)

DECLARE @TypeID int,@ItemtypeID int,@ItemType varchar(50),@ItemName Varchar(50)

SELECT @TypeID=0

DECLARE Item_Cursor SCROLL CURSOR FOR SELECT ItemType,ItemtypeID FROM #TMP01
OPEN Item_Cursor
FETCH Item_Cursor INTO @ItemType,@ItemtypeID
WHILE @@FETCH_STATUS=0
BEGIN

INSERT #Result(TypeID,ItemID,ItemTypeID,ItemType,ItemName)
SELECT TOP 1 @TypeID,ItemID,@ItemtypeID,@ItemType,ItemName FROM table1 WHERE ItemType=@ItemType

FETCH Item_Cursor INTO @ItemType,@ItemtypeID
END
CLOSE Item_Cursor
DEALLOCATE Item_Cursor

INSERT INTO #Result(TypeID,ItemID,ItemTypeID,ItemType,ItemName)
SELECT 1,ItemID,ItemtypeID,ItemType,ItemName FROM table1
WHERE ItemID NOT IN (SELECT itemID from #Result)

UPDATE #Result SET ItemType=NULL WHERE TypeID<>0

SELECT ItemType,ItemName FROM #Result ORDER BY ItemTypeID,TypeID

调用存储过程
Exec Procedure1
得如下结果:
ItemType ItemName
外观 长度
NULL 宽度
温度 里面温度
NULL 外面温度
SaKura2003 2004-04-27
  • 打赏
  • 举报
回复
能否用ADODataSet的comandtext属性select distinct编号 from table进行一次查询,然后再写一个ONFILTERRECORD事件呢?这个事件为过滤掉其他需过滤的字段。
hunterht 2004-04-27
  • 打赏
  • 举报
回复
如果你的数据只是用于显示,可以在取出来之后对数据集的那两个字段进行处理(用个循环就可以啦)后再显示



________________________欢迎访问和宣传我的论坛http://hthunter.vicp.net/
baby19820917 2004-04-27
  • 打赏
  • 举报
回复
你可以在你写select 的时候做这些,在sql里有as这个命令的,你可以把后三个as成一个不是就可以了,具体你自己做做吧,应该是可以的。
rikky 2004-04-27
  • 打赏
  • 举报
回复
难度太大,帮你up看看高人的

2,507

社区成员

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

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