sqlserver在函數中使用臨時表


-- 根據大訂單號查詢已付供應商金額(已付-已退)
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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM