如何把下面SQL2000存储过程改为Mysql支持的存储过程?
如何把下面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 ')
...全文
相关推荐
hibernate方言汇总.docx和SSH的jar包名称
hibernate方言汇总.docx和SSH的jar包名称
2021-2022计算机二级等级考试试题及答案No.12083.docx
2021-2022计算机二级等级考试试题及答案No.12083.docx
mysql 动态执行存储过程语句
MSSQL中动态执行sql语句可以使用EXEC()函数。MSSQL中也有类似的函数EXECUTE(),不过不同的是MYSQL中动态执行存储过程语句与MSSQL还是有区别的。
mysql 存储过程中变量的定义与赋值操作
一、变量的定义 mysql中变量定义用declare来定义一局部变量,该变量的使用范围只能在begin…end 块中使用,变量必须定义在复合语句的开头,并且是在其它语句之前,也可以同时申明多个变量,如果需要,可以使用default赋默认值。 定义一个变量语法如下: declare var_name[,…] type[default value]看一个变量定义实例 declare last date;二、mysql存储过程变量赋值 变量的赋值可直接赋值与查询赋值来操作,直接赋值可以用set来操作,可以是常量或表达式如果下 代码如下: set var_name= [,var_name expr]
SQL SERVER2000数据库备份和恢复存储过程.rar_SQL 备份_recovery in SQL_sql server
SQL SERVER2000数据库备份和恢复存储过程


