sql语句的问题(50分)

F

fstao

Unregistered / Unconfirmed
GUEST, unregistred user!
假如表table1的数据如下:
field1 field2 field3
A1 200204 10
A1 200205 20
A2 200204 30
A3 200204 40
A3 200205 50

用sql 语句如何生成以下的数据?可能需要用游标。数据库是sql server 2000
field1 200204 200205
A1 10 20
A2 30
A3 40 50
 
SELECT A.FIELD1,B.FIELD3,C.FIELD3
FROM
SELECT DISTINCT FIELD1 FROM TABLE1 A,
(SELECT FIELD1,FIELD3 FROM TABLE1 WHERE FIELD2='200204') B,
(SELECT FIELD1,FIELD3 FROM TABLE1 WHERE FIELD2='200205') C
WHERE A.FIELD1=B.FIELD1(+) AND A.FIELD1=C.FIELD1(+)
就事论事,以此类推

 
这样写不行的,因为200204和200205是动态的,不是静态的。我想可能要利用临时表。
 
靠sql根本不可能做出来,不用费心想了(本人在这个问题上考虑过一个多月的结论)
 
我就说,一定是有变化的。也能做到
做个过程,一个sql提所有的field2。
一个动态sql做出以上效果。还是很容易理解的吧?
 
当然可以了,我就做个,写一个存贮过程了,用游标就可以实现,在这里我当然没有时间了。
我是告诉你绝对可以实现。
 
利用存储过程可以实现,SQl SERVER2000本身有一个例子,你可以去查询一下。
可以动态的根据需要查询的字段,动态的生成一个建立数据表的SQL语句,然后利用游标进行数据的添加
当数据量很大时,做好心理准备,速度可能较慢
 
接受答案了.
 
顶部