切换数据库引发的血案!!!!!!
如何把下面SQL2000存储过程改为Mysql支持的存储过程?
昨日已发一帖,今日因出差没时间想,各位贴个代码,急用。。。。
SQL code
昨日已发一帖,今日因出差没时间想,各位贴个代码,急用。。。。
SQL code
create procedure st_test2011 @Row varchar(50), @Col Varchar(50), @OrderBy varchar(50), /*用于列排序*/ @Sum Varchar(100), @SQL_Condition Varchar(8000) as declare @Productno varchar(100) declare @qty decimal(18,2) declare @s varchar(2000) declare @s_sum varchar(200) declare @i int declare @SQL1 varchar(5000) declare @SQL2 varchar(5000) declare @SQL3 varchar(5000) set @SQL1='select '+@row+ ' as srow,'+@col+' as scol ,'+'SUM('+@sum+') AS Qty ,'+@OrderBy+' as serial '+ @SQL_Condition select convert(varchar(200),123) as scol ,convert(varchar(100),123) as serial into #tmp from tbDivision where 0=1 set @sql3=' insert into #tmp select distinct scol,serial from ('+@SQL1+' ) as pp order by Serial' print @sql3 exec (@sql3) set @i=0 set @s_sum='' DECLARE MyCursor CURSOR FOR select scol from #tmp OPEN MyCursor FETCH NEXT FROM MyCursor INTO @Productno WHILE @@FETCH_STATUS = 0 BEGIN set @i=@i+1 if @i=1 begin set @s=' sum(case p.scol when '''+@productno+''' then p.Qty else 0 end) as '+'Q'+@productno set @s_sum='P1.Q'+@productno end else begin set @s=@s+' ,sum(case p.scol when '''+@productno+''' then p.Qty else 0 end) as '+'Q'+@productno set @s_sum=@s_sum+'+P1.Q'+@productno end FETCH NEXT FROM MyCursor INTO @Productno END CLOSE MyCursor DEALLOCATE MyCursor set @SQL2=(' SELECT P1.*, '+@s_sum+' AS YearTotal'+ ' into #tempsum FROM (SELECT P.srow,'+@s+ ' FROM ('+ @SQL1+') AS P'+ ' GROUP BY P.srow) AS P1 order by p1.srow ')
作者: gisslee 发布时间: 2011-05-10
可以外包出去了。
作者: zuoxingyu 发布时间: 2011-05-10