急求一 SQL 语句!!!
现有数据记录出下:
a b d
a c d
a e d
a f d
欲生成以下结果:
a b、c、e、f d
请问如何实现?谢谢
问题点数:20、回复次数:16Top
1 楼mjs2000(宁静致远)回复于 2001-12-26 17:48:51 得分 5
你是不是想得到一个关于a的记录集 表t
id x y
a b d
a c d
a e d
a f d
Select y from t where id=a and y not in (Select distinct x from t where id=a) union select x from t where id=a
否则你要用到数据库里的函数合并记录集,或者用试图直接完成Top
2 楼xsp(半个程序员)回复于 2001-12-26 17:49:36 得分 5
dim rec as new recordset
dim s as string
rec.open "select * from mytable",cn
rec.movelast
rec.movefirst
s=rec!fields(0) & " " & rec!fields(1)
rec.movenext
for i=1 to rec.recordcount-1
s=s & "、" & rec!fields(1)
rec.movenext
next i
rec.movefirst
s=s & " " & rec!fields(2)
s就是。Top
3 楼netfor2000(常云)回复于 2001-12-26 17:58:21 得分 0
我的意思是用SQL生成
(T) (S)
a b
a c
a d
a e
f g
f h
i j
....
生成
a b、c、d、e
f g、h
i j
....Top
4 楼lx_king(天剑)回复于 2001-12-26 21:43:50 得分 0
想想Top
5 楼netfor2000(常云)回复于 2001-12-27 19:40:45 得分 0
请帮助Top
6 楼fuxc(Michael(继续迷茫))回复于 2001-12-27 20:34:47 得分 5
还是用代码生成临时表吧,sql不是万能的Top
7 楼netfor2000(常云)回复于 2001-12-28 20:01:28 得分 0
我现在就是用这个方法效率不高。因为数据量太大。请问有更好的方法吗?Top
8 楼netfor2000(常云)回复于 2001-12-29 21:09:00 得分 0
如果不能用CSQL实现的话,请问有什么有效的方法呢。
如用建临时表的等,请谈谈你的想法。我们来讨论出一种效率高的方法。 谢谢Top
9 楼feihong0233(泓)回复于 2001-12-29 22:00:19 得分 5
TRANSFORM b SELECT a FROM cc GROUP BY a PIVOT b
我只能做出这个样子的,
cc是表,a,b,c是字段。
a b c
a b d
a c d
a e d
a f d
Top
10 楼netfor2000(常云)回复于 2001-12-30 12:15:10 得分 0
feihong0233(泓) 你好
如果是这样的结果。用 SELECT * FROM cc 就可以了呀Top
11 楼blp(★★★)回复于 2001-12-30 12:53:11 得分 0
没有办法,前一阵子我也问了这个问题,到现在也没有想到效率高的办法,Top
12 楼musketeerely(那就这样吧)回复于 2001-12-30 13:07:30 得分 0
例如:
表名:table1
id x y
a b d
a c d
a e d
a f d
注意:id,x,y的字段类型最好是一致的,如果不一致用cast 或者convert 转换一下
select distinct id from table1
union
select distinct x from table1
union
select distinct y from table1
Top
13 楼blp(★★★)回复于 2001-12-30 13:12:32 得分 0
跟他题目的意思完全不一样了。
Top
14 楼netfor2000(常云)回复于 2002-01-12 00:22:53 得分 0
还有人一关心一下吗?Top
15 楼bc3()回复于 2002-01-12 00:36:15 得分 0
肯定要做一个临时表Top
16 楼netfor2000(常云)回复于 2002-01-13 01:28:04 得分 0
大家来UP一下也好嘛Top




