如何把下面SQL2000存储过程改为Mysql支持的存储过程?

Diving Diving 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
如何把下面SQL2000存储过程改为Mysql支持的存储过程?
昨日已发一帖,今日因出差没时间想,各位贴个代码,急用。。。。
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 ')
...全文

相关推荐

评论 8
收藏 已收藏
分享
返回顶部
Diving
MySQL 57,062 成员 56,759 内容