begin
declare var1 date;
declare var2 date;
select max(t4),min(t3) from s1,s2 into var1,var2;
create temporary table  tt1
( a1 varchar(10),
  atime date,
  str   varchar(30));
while var2<=var1 do
select t2,var2,group_concat(convert (t1,char(2))) as  tt
from s1,s2
where var2  between t3  and t4
and t2=t6
and length_string(tt)>t5
group by t2;
set var2=var2+ interval 1 day;
end while;
select * from tt1;
drop table tt1;
end
错误 不知道列名 tt
length_string 为我写的函数
begin
set  @v:=1+ length(var)-length(replace(var,',',''));
return  @v;
end 
十分感谢

解决方案 »

  1.   

    SELECT里起的别名..在WHERE里是看不到的..因为是先执行WHERE之后再执行SELECT的.
      

  2.   

     改成 and length_string( group_concat(convert (t1,char(2))) )>t5
    怎么报group 函数使用错误???
      

  3.   

    新问:怎么进行行列装换
    我现在有如下表:   
      班级           语文           数学           英语     
      1班 80.6 86.0 82.5   
      2班 80.3 83.5 79.0   
      3班 84.5 91.0 87.5   
        
      行列转换成:   
       科目               1班             2班             3班         
      语文           80.6           80.3           84.5   
      数学           86.0           83.5           91.0   
      英语           82.5           79.0           87.5   
    网上别人用sqlserver写的,有点看不懂???
    十分感谢