sqlserver在函数中使用临时表
2015-06-30 17:03
411 查看
-- 根据大订单号查询已付供应商金额(已付-已退)
ALTER FUNCTION [dbo].[F__SupplierPayOffAmountBOrder]
(
-- Add the parameters for the function here
@BOrderId int
)
RETURNS decimal
AS
BEGIN
declare @payOffAmount decimal
set @payOffAmount=0
declare @SorderIdTemp table(ID int) --定义临时表
insert INTO @SorderIdTemp(ID)
select ID
from TongYe..Borders_Orders_s
where ParentID=@BOrderId and IsValid=1 and OrderStatus<>17
while exists (select ID from @SorderIdTemp)
BEGIN
DECLARE @sid int
select TOP 1 @sid=ID from @SorderIdTemp
set @payOffAmount = @payOffAmount + ISNULL(dbo.F__SupplierPayOffAmount(@sid),0)
delete from @SorderIdTemp where ID=@sid
END
return Isnull( @payOffAmount,0)
END
ALTER FUNCTION [dbo].[F__SupplierPayOffAmountBOrder]
(
-- Add the parameters for the function here
@BOrderId int
)
RETURNS decimal
AS
BEGIN
declare @payOffAmount decimal
set @payOffAmount=0
declare @SorderIdTemp table(ID int) --定义临时表
insert INTO @SorderIdTemp(ID)
select ID
from TongYe..Borders_Orders_s
where ParentID=@BOrderId and IsValid=1 and OrderStatus<>17
while exists (select ID from @SorderIdTemp)
BEGIN
DECLARE @sid int
select TOP 1 @sid=ID from @SorderIdTemp
set @payOffAmount = @payOffAmount + ISNULL(dbo.F__SupplierPayOffAmount(@sid),0)
delete from @SorderIdTemp where ID=@sid
END
return Isnull( @payOffAmount,0)
END
相关文章推荐
- Mysql5.5 两台服务器互为主从同步设置
- Web系统从Oracle迁移至MySQL
- MySQL运维之--日常维护操作
- 数据库复习11——关系模式与范式
- [MySQL]优化最大连接数
- sqlite 各个语言实现版本库
- REDIS的几个测试结果
- Mysql找回管理员密码
- Mysql树型结构2种方式及相互转换
- sqlcipher 命令行给db外部加密的实现
- ORACLE中常用的两种分页语句
- (总结)Oracle 11g常用管理命令(用户、表空间、权限)
- 数据库架构的演变
- sql server删除主键约束所想到的
- C# SQL多条件查询拼接技巧
- Oracle中in和exists的区别和选择
- 一条SQL
- HTML5 Web SQL Database 与 Indexed Database 的 CRUD 操作
- 【转】MySQL数据类型
- oracle求时间差的常用函数