stringgrid中表格内容为
item description
1 a,b,c,d
2 e,f,g,h
3 z,a,y
4 za,fd,p,b
...现在需要实现的算法是,如果在记录中的description中出现重复的值,则列出记录的item值..例如
item为1和3的两条记录中,description中均有a,则列出1,3 这两行(很显然,item为4的是za,不是a,故item为4这条记录不列出)。。
item description
1 a,b,c,d
2 e,f,g,h
3 z,a,y
4 za,fd,p,b
...现在需要实现的算法是,如果在记录中的description中出现重复的值,则列出记录的item值..例如
item为1和3的两条记录中,description中均有a,则列出1,3 这两行(很显然,item为4的是za,不是a,故item为4这条记录不列出)。。
解决方案 »
- ocx 与dax error
- 信差
- 一个小问题,知道的麻烦告诉下?
- function sum(expr:varint;band:variant=0;flags:Integer=0):variant 是什么意思 FASTREPORT 里的
- dll?
- 我是彩鸟!问最简单的delphi怎么写
- 利用ClientDataSet制作复杂题头的数据表格
- 菜鸟问题,快来拿分
- 请问怎样按发卡器的地址顺序从大到小地打开串口?已完成排序代码,谢谢!
- access violation at address 1f9fd8f3 in module 'SQLSRV32.dll'.write of address 05461345
- [Error] U_FrmSearchNetIp.pas(111): Undeclared identifier: 'RxDispinf'
- 如果显示这样的窗口?
然后将每一条记录拆分为多条记录存储在一个临时表中然后利用sql语句去判断描述相同的,取其id,然后做为显示的条件,在grid中显示出来即可.
现在拆开太迟了,拆开要用游标,500条,快不了哪里去;
除非description字段内容‘a,b,c,d’个数最多可以确定下来并且不多,可以避开游标。
stringgrid中的数据是从excel中直接导入进来的。。没办法的事情啊。。
前题:1):建两个数据结构一样的数据表,以下例子的两个表名分别是: tlanme,tlanmeb
数据结构 ID INT(对应item)
VALUES VARCHAR 50(对应description)
2):你要想办法将excel中的数据导入到tlanme.
3):用一个dbgrid控件连接ADOQUERY控件 4):在ADOQUERY控件中执行以下语句 SELECT TOP 8000 id = IDENTITY(int, 1, 1) INTO # FROM syscolumns a, syscolumns bINSERT INTO tlanmeb(id,[values]) SELECT A.id, SUBSTRING(A.[values], B.id, CHARINDEX(',', A.[values] + ',', B.id) - B.id) tFROM tlanme A, # BWHERE SUBSTRING(',' + A.[values], B.id, 1) = ','DROP TABLE #
select * from tlanme where [id] in(select [id] from tlanmeb where [values] in (select [values] from tlanmeb GROUP BY [values] having count(*)>1))
-----------结果------------------
1 a,b,c,d
3 z,a,y
4 za,fd,p,b 这样得到了你想要的结果了,1与3因为大家都含有字母a所以重复,而1与4因为都含有字母b所以重复.