原内容:
fields ubiaohao jianyandian wucha jielun
1111111 a600 0.12 T
1111111 a400 0.32 T
1111111 a300 0.52 T
1111111 a200 0.22 T
1111111 a100 -0.22 T
1111111 a050 0.72 T
1111111 a020 0.92 T
1111112 a600 0.12 T
1111112 a400 0.32 T
1111112 a300 0.52 T
1111112 a200 0.22 T
1111112 a100 -0.22 T
1111112 a050 0.72 T
1111112 a020 0.92 T
... ... ... ...
目标:
fields ubiaohao a600 a400 a300 a200 a100 a050 a020 jielun
1111111 0.12 0.32 0.52 0.22 -0.22 0.72 0.92 T
1111112 0.12 0.32 0.52 0.22 -0.22 0.72 0.92 T
...
所有的字段都是字符型,其中jianyandian的内容是不定的,但在某个条件下是不变的,请教各位,如何实现动态转换?
fields ubiaohao jianyandian wucha jielun
1111111 a600 0.12 T
1111111 a400 0.32 T
1111111 a300 0.52 T
1111111 a200 0.22 T
1111111 a100 -0.22 T
1111111 a050 0.72 T
1111111 a020 0.92 T
1111112 a600 0.12 T
1111112 a400 0.32 T
1111112 a300 0.52 T
1111112 a200 0.22 T
1111112 a100 -0.22 T
1111112 a050 0.72 T
1111112 a020 0.92 T
... ... ... ...
目标:
fields ubiaohao a600 a400 a300 a200 a100 a050 a020 jielun
1111111 0.12 0.32 0.52 0.22 -0.22 0.72 0.92 T
1111112 0.12 0.32 0.52 0.22 -0.22 0.72 0.92 T
...
所有的字段都是字符型,其中jianyandian的内容是不定的,但在某个条件下是不变的,请教各位,如何实现动态转换?
lsstr,sqlstr:String;分两步。
第一:取得 jianyandian 不重复值的数组放在一个sql中。
SELECT distinct jianyandian from table1 order by jianyandian desc
暂存在一个query控件中,名为sql1。第二:做一循环,但里面的还是有一些问题,条件不知该如何写,请高人继续。
sqlstr:='select ubiaohao ';
sql1.frist;
while not sql1.eof do
begin
lsstr:=sql1.fieldbyname('jianyandian').asstring;
sqlstr:=sqlstr+',wucha as '+jianyandian;
sql1.next;
end;
sqlstr:=sqlstr+',jielun from table1';
for i;=0 to sql.recordcount-1 do
beginSELECT wucha as char(a+i) from table1 sqlstr:=sqlstr+'where jianyandian='''+sq1.fieldbyname('jianyandian')+''','end;
sqlstr:=copy(sqlstr,1,length(sqlstr));
sqlstr:='select '+sqlstr+' from table'