注册 登录
编程论坛 SQL Server论坛

[求助]dbgrid问题!

ty2 发布于 2007-01-31 13:26, 846 次点击
现在我想在dbgrid中实现这样的功能:
数据库中的信息是:
代码 数量 金额 日期
001 2 32 20020203
001 1 16 20010201
001 4 64 20050401
002 5 50 20010404
002 2 20 20010101
通过相关的语句,最终实现在dbgrid中如下显示:
001 2 32 20020203
1 16 20010201
4 64 20050401
002 5 50 20010404
2 20 20010101
就是将前几列的相同信息,只显示一次就好!
请哪位大侠来说说
10 回复
#2
Kendy1234562007-01-31 13:37
Create table Test
(
Code varchar(10),
CodeDisplay varchar(10),
Count int,
Amount money,
[Date] datetime,
R_ID int identity(1,1)
)

Insert into Test
select 代码, 代码, 数量, 金额, 日期 from Table1
Update Test set CodeDisplay = '' where R_ID not in
(select R_ID from ( select Code, R_ID = Max(R_ID) from Test Group by Code)
)
Select * from Test order by Code, DisplayCode Desc

绑定dbgrid的时候用DisplayCode 代替 代码

#3
棉花糖ONE2007-01-31 13:45

if object_id('shiyan') is not null
drop table shiyan
go
create table shiyan(id varchar(3),name varchar(5))
insert into shiyan select '001','aa'
union all select '001','bb'
union all select '002','cc'
union all select '002','dd'
select * from shiyan

id name
---- -----
001 aa
001 bb
002 cc
002 dd

(所影响的行数为 4 行)
select id=(case when exists (select 1 from (select id,max(name) as n from shiyan group by id) b where b.n=s.name) then id else ' ' end),name from shiyan s
id name
---- -----
aa
001 bb
cc
002 dd

(所影响的行数为 4 行)只要你的没个分组中有唯一值的列就行了,把name用唯一值的列替换,你自己照着改吧

#4
ty22007-02-03 09:40
谢谢了
我来好好看看
#5
ty22007-02-03 10:56
如果是在delphi的环境中,那上面的sql语句要做什么变化啊?
谢谢
#6
Kendy1234562007-02-03 11:23
SQL语言和开发平台没关系的 不用变
#7
xu20002007-02-03 11:30
楼主用是不是Access吗,那2,3楼的回答可能对你都不适用。
#8
ty22007-02-03 13:21
我是在delphi环境下,连接的access数据库,也不行啊?
#9
Kendy1234562007-02-03 16:40
你没试怎么知道不行呢?

我记得SQL是叫(Standard Query Language) 标准化查询语言 我觉得MS自己带的数据库肯定是支持的, Access是Office的一部分 应该没有问题.
2,3楼的方法应该都可以.

楼主试试看跑不跑得起来再说吧
#10
ty22007-02-06 10:26
我试了下,似乎真的不能用!
#11
xu20002007-02-06 10:36
以下是引用Kendy123456在2007-2-3 16:40:13的发言:
你没试怎么知道不行呢?

我记得SQL是叫(Standard Query Language) 标准化查询语言 我觉得MS自己带的数据库肯定是支持的, Access是Office的一部分 应该没有问题.
2,3楼的方法应该都可以.

楼主试试看跑不跑得起来再说吧

二楼和三的的方法不是标准的sql92而是T-Sql。只服务于MSSQL。(Sybase,好像也能用,我不是很清楚)。

1