set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[STPListCostByDate] @__StartDate char(8)='00/00/00', @__EndDate char(8)='99/99/99', @__UserSecLevel int, @FormCaption nvarchar(1000) output AS if not (@__StartDate='00/00/00' and @__EndDate='99/99/99') set @FormCaption='<' + @__EndDate + '~' + @__StartDate +'>' SELECT CostTbl.Comment, FunCodeComplete_1.Title, derivedtbl_1.Remain, CostTbl.Fk_AccountSyscode, CostGroup1Tbl.GroupName AS GroupName1, CostGroup2Tbl.GroupName AS GroupName2, derivedtbl_1.LastDate FROM CostTbl INNER JOIN dbo.FunCodeComplete(@__UserSecLevel) AS FunCodeComplete_1 ON CostTbl.Fk_AccountSyscode = FunCodeComplete_1.AccountSysCode INNER JOIN (SELECT Fk_AccountSyscode, SUM(AmmountIN - AmmountOUT) AS Remain, MAX(DocDate) AS LastDate FROM VWDocumentDetail_DocHeader WHERE (DocDate BETWEEN @__StartDate AND @__EndDate) GROUP BY Fk_AccountSyscode) AS derivedtbl_1 ON FunCodeComplete_1.AccountSysCode = derivedtbl_1.Fk_AccountSyscode LEFT OUTER JOIN CostGroup2Tbl ON CostTbl.GroupID2 = CostGroup2Tbl.GroupId LEFT OUTER JOIN CostGroup1Tbl ON CostTbl.GroupID1 = CostGroup1Tbl.GroupId