效率有些低
select a,b,c
(
select name as name,id as a,sl as b,je as c from namek
union all
select name as name,'合计' as a,sum(sl) as b,sum(je) as c from namek
)
where name=:name我边上一位同学提醒了,要用union all
select a,b,c
(
select name as name,id as a,sl as b,je as c from namek
union all
select name as name,'合计' as a,sum(sl) as b,sum(je) as c from namek
)
where name=:name我边上一位同学提醒了,要用union all
' union '+
' select '合计',sum(sl),sum(je) from namek where name='''+v_name+'''';
我现在已经采用了变量的形式,如果改成 jiezhi(西域浪子) 的sql语句,工作量挺大的,所以有没有给一个参数赋值就能解决我提的问题呢.
我的意思是说在
select id,sl,je from namek where name=:name
union
select '合计',sum(sl),sum(je) from namek where name=:name中
我使用Adoquery.parameters[0].value:='张三'为什么不能运行;
而一定要Adoquery.parameters[0].value:='张三';
Adoquery.parameters[1].value:='张三'才能运行,
也就是同样的变量它赋值了两遍
2.for (i=0;i<=10;i++)
Adoquery.parameters[i].value:='张三';
next
end for 1-2也没太大改动吧jiezhi(西域浪子)说的静态拼串的方法是应用比较广泛的方法,十分灵活的,如果你没写好程序的话,建议使用他的方法。
for (i=0;i<=10;i++)
Adoquery.parameters[i].value:='张三';
next
end for
说的是对一个数组里的参数进行赋值,
这样有问题:
1.你得知道这个数组里的参数有几个;
2.sql语句里有可能含有很多变量,但变量并不一定相同.
所以我还是希望在
select id,sl,je from namek where name=:name
union
select '合计',sum(sl),sum(je) from namek where name=:name中
使用Adoquery.parameters[0].value:='张三'就能够运行;
而不采用Adoquery.parameters[0].value:='张三';
Adoquery.parameters[1].value:='张三'才能运行,
不知道是否明白意思