IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[STPListVisitorMonthlyReport]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[STPListVisitorMonthlyReport] GO set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO create PROCEDURE [dbo].[STPListVisitorMonthlyReport] (@__PersonCode int, @__Year int, @__Mount int, @FormCaption nvarchar(1000) output) AS select @FormCaption=Title + '- ' + CAST(AccountSysCode AS nvarchar(1000)) FROM CodeMNGDWNTbl WHERE (AccountSysCode = @__PersonCode) Set @FormCaption=@FormCaption + N' سال عملکرد ' + CAST(@__Year as Char(2)) Declare @OT Table(Mount int,InvoiceVisitAmount money,GoodVisitAmount money,TotalAmount Money) Declare @MountStr char(2) Declare @A1 Money,@A2 Money if @__Mount>0 and @__Mount<10 set @MountStr='0'+ LTrim(Str(@__Mount)) Else set @MountStr=LTrim(Str(@__Mount)); if @__Mount>0 and @__Mount<13 Begin select @A1=[dbo].[FunCalVisitorPerAmount](@__PersonCode,CAST(@__Year as Char(2)),@MountStr) select @A2=[dbo].[FunCalVisitorGoodAmount](@__PersonCode,CAST(@__Year as Char(2)),@MountStr) Insert into @OT (Mount,InvoiceVisitAmount,GoodVisitAmount,TotalAmount) Values (@__Mount,@A1,@A2,@A1+@A2) End ELSE Begin set @__Mount=0 While @__Mount<12 Begin set @__Mount=@__Mount+1 if @__Mount<10 set @MountStr='0'+ LTrim(Str(@__Mount)) Else set @MountStr=LTrim(Str(@__Mount)); select @A1=[dbo].[FunCalVisitorPerAmount](@__PersonCode,CAST(@__Year as Char(2)),@MountStr) select @A2=[dbo].[FunCalVisitorGoodAmount](@__PersonCode,CAST(@__Year as Char(2)),@MountStr) Insert into @OT (Mount,InvoiceVisitAmount,GoodVisitAmount,TotalAmount) Values (@__Mount,@A1,@A2,@A1+@A2) End END select * from @OT