说实话,你的客户还真挑剔!<br>用过程来实现<br>我的环境是Oracle8i<br>create or replace procedure mySQL<br>(p_sql out varchar2)<br>as<br>total:number;<br>begin<br>select sum(amt) into tatal from tablename;<br> if tatal<1000 then<br> p_sql := '没有满足条件的记录';<br> return;<br> end if;<br>end;<br>我觉得在写下去的话,要写好多代码。<br>我顺便问一句,你的客户是怎么要求的?
create or replace procedure mySQL<br>(p_sql out varchar2)<br>as<br>total:number;<br>begin<br>select sum(amt) into tatal from tablename;<br> if tatal<1000 then<br> p_sql := '没有满足条件的记录';<br> return;<br> end if;<br>if tatal>=1000 then<br> p_sql := 'select * from tablename';<br> return;<br> end if;<br><br>end;
to lz:<br>"我的意思并不是一定要所有的记录都加起来,也许所有记录加起来也不等于1000,也有可能是加起来后超过1000,如果超过1000,就要再在这些记录中看部分AMT字段的值的和是否有等于1000的情况,有点像离散数学里的知识,困惑中 " <br><br>正如你回答我的答案上写的 需要部分的amt 字段的值的和=1000 , 那这个部分怎么出来的呢??? <br><br>呵呵,其实不管如何 都是 group by +sum 应该可以实现的,关键就是查询条件了.<br>你现在这个查询条件没说清楚啊