immad
Posting Yak Master
230 Posts |
Posted - 2013-10-05 : 08:11:25
|
hello i have two functions and i have to link one function to another function where i dont know where to linkthis is my functionALTER FUNCTION [dbo].[26F1](@CID int,@BID int,@EmpID int,@FromDate Datetime,@ToDate Datetime,@Dept VARCHAR(50),@userid VARCHAR(50),@Grade VARCHAR(50))RETURNS TABLEASRETURN SELECTD.*,T.DID,ROW_NUMBER() OVER (PARTITION BY D.Eid,CONVERT (VARCHAR,CHECKTIME,104) order by CheckTime) AS rn,COUNT(*) OVER (PARTITION BY D.Eid,CONVERT (VARCHAR,CHECKTIME,104)) AS TotalRowFROM(--SELECT --T.CID,--T.EID,--T.CheckTime,--T.Status,--0 BID,--0 EBID,----ID AttendID--1 AttendID,--'' Remarks,--'' Comments,--0 InBetween--from --Attend T--LEFT OUTER JOIN Employee T1 ON T.EID = T1.EID--Where ----CONVERT (DATETIME,CONVERT (VARCHAR,T.CheckTIme,101)) > (SELECT TOP 1 DATE FROM TRANS Where (ISNULL(@BID,'')='' OR EBID = @BID) order by DATE DESC)----AND --(ISNULL(@CID,'')='' OR T1.CID = @CID)--AND (ISNULL(@BID,'')='' OR T1.BID = @BID)--AND CONVERT (DATETIME,CONVERT (VARCHAR,T.CheckTIme,101)) BETWEEN @FromDate and @ToDate--AND (ISNULL(@EmpID,'')='' OR T.EID = @EmpID)--AND (ISNULL(@Dept,'')='' OR ',' + @Dept + ',' LIKE '%,' + CAST(T1.DID AS varchar) + ',%')--AND (ISNULL(@userid,'')='' OR T1.UserID = @userid)--AND (ISNULL(@Grade,'')='' OR T1.Grade = @Grade)------UNION ALLSELECT--DISTINCTT.CID,T.EID,--CONVERT(INT,RTRIM(replace(T.EID, ' ', ''))) EID,T.CheckTime,T.Status,T.BID,T.EBID,0 AttendID,'' Remarks,'' Comments,0 InBetween,T2.Night,T.CTypefrom Attendlog1 T--INNER JOIN Employee T1 ON RTRIM(replace(T.EID, ' ', '')) = T1.EID AND T.EBID = T1.BID--INNER JOIN Employee T1 ON T.EID = T1.EID AND T.EBID = T1.BIDLEFT OUTER JOIN Employee T1 ON T.EID = T1.EID --AND T.EBID = T1.BIDLEFT OUTER HASH JOIN [FRoaster] (@EmpID,@FromDate,@ToDate,@CID,@BID,@Dept,@userid,@Grade) T2 ON T.EID = T2.EID AND DATEADD(dd, 0, DATEDIFF(dd, 0, T .CheckTime)) = T2.DateWhere --CONVERT (DATETIME,CONVERT (VARCHAR,T.CheckTIme,101)) > (SELECT TOP 1 DATE FROM TRANS Where (ISNULL(@BID,'')='' OR EBID = @BID) order by DATE DESC)--AND(ISNULL(@CID,'')='' OR T1.CID = @CID)AND T.BID = T.EBIDAND (ISNULL(@BID,'')='' OR T1.BID = @BID)AND CONVERT (DATETIME,CONVERT (VARCHAR,T.CheckTIme,101)) BETWEEN @FromDate AND DATEADD(DAY, 1, @ToDate)AND (ISNULL(@EmpID,'')='' OR T.EID = @EmpID)--AND (ISNULL(@EmpID,'')='' OR T1.EID = @EmpID)AND (ISNULL(@Dept,'')='' OR ',' + @Dept + ',' LIKE '%,' + CAST(T1.DID AS varchar) + ',%')--AND T1.AttExcempt <> 1AND (ISNULL(@userid,'')='' OR T1.UserID = @userid)--AND (ISNULL(@Grade,'')='' OR T1.Grade = @Grade)AND (ISNULL(@Grade,'')='' OR ',' + @Grade + ',' LIKE '%,' + CAST(T1.Grade AS varchar) + ',%')UNION ALLSELECT T.CID,T.EID,T.CheckTime,T.Status,EBID BID,EBID,--ID AttendID2 AttendID,Remarks,Comments,Case WHEN Remarks LIKE '%Personal%' THEN 1ELSE 0 END InBetween,'' Night,'' CTypefrom ShortLeave TLEFT OUTER JOIN Employee T1 ON T.EID = T1.EIDWhere --CONVERT (DATETIME,CONVERT (VARCHAR,T.CheckTIme,101)) > (SELECT TOP 1 DATE FROM TRANS Where (ISNULL(@BID,'')='' OR EBID = @BID) order by DATE DESC)--AND (ISNULL(@CID,'')='' OR T1.CID = @CID)AND (ISNULL(@BID,'')='' OR T1.BID = @BID)AND CONVERT (DATETIME,CONVERT (VARCHAR,T.CheckTIme,101)) BETWEEN @FromDate AND DATEADD(DAY, 1, @ToDate)AND (ISNULL(@EmpID,'')='' OR T.EID = @EmpID)--AND (ISNULL(@EmpID,'')='' OR T1.EID = @EmpID)AND (ISNULL(@Dept,'')='' OR ',' + @Dept + ',' LIKE '%,' + CAST(T1.DID AS varchar) + ',%')AND (ISNULL(@userid,'')='' OR T1.UserID = @userid)--AND (ISNULL(@Grade,'')='' OR T1.Grade = @Grade)AND (ISNULL(@Grade,'')='' OR ',' + @Grade + ',' LIKE '%,' + CAST(T1.Grade AS varchar) + ',%'))DLEFT OUTER JOIN Employee T on D.EID = T.EIDWhere --D.CHECKTIME > '2013-04-30 00:00:00.000'----CONVERT (DATETIME,CONVERT (VARCHAR,D.CheckTIme,101)) > (SELECT TOP 1 DATE FROM TRANS Where (ISNULL(@BID,'')='' OR EBID = @BID) order by DATE DESC)--AND--CONVERT (DATETIME,CONVERT (VARCHAR,D.CheckTIme,101)) BETWEEN @FromDate and @ToDate--AND (ISNULL(@EmpID,'')='' OR D.EID = @EmpID)----AND (ISNULL(@Dept,'')='' OR ',' + @Dept + ',' LIKE '%,' + CAST(T.DID AS varchar) + ',%')--AND (ISNULL(@Grade,'')='' OR Grade = @Grade)(ISNULL(@userid,'')='' OR T.UserID = @userid)-------------------------------------------------------------ALTER FUNCTION [dbo].[FRoaster](@EmpID int,@FromDate Datetime,@ToDate Datetime,@CID int,@BID int,@Dept VARCHAR(50),@userid VARCHAR(50),@Grade varchar(50))RETURNS TABLEASRETURN SELECTT.*,Convert (Datetime,convert (varchar,Year)+'-'+ convert (varchar,MOnth)+'-'+convert (varchar,Day))Date,T2.NightFROM(SELECTCID,BID,EID,SName,Year,Month,substring( Col, 2, 2 )Dayfrom ROOASTERUNPIVOT (SName FOR Col IN ([d1], [d2], [d3], [d4], [d5], [d6] , [d7] , [d8], [d9], [d10],[d11], [d12], [d13], [d14], [d15], [d16], [d17], [d18], [d19], [d20],[d21], [d22], [d23], [d24], [d25], [d26], [d27], [d28], [d29], [d30],[d31]))D)TINNER JOIN Employee T1 ON T.EID = T1.EID AND T.BID = T1.BIDLEFT OUTER JOIN Shift T2 ON T.SName = T2.ShiftWHEREDATEADD(year, [year]-1900, DATEADD(month, [month]-1, DATEADD(day, [day]-1, 0))) BETWEEN @FromDate AND @ToDate--T.Year BETWEEN DATEPART(YYYY,@FromDate) AND DATEPART(YYYY,@ToDate) --AND T.Month BETWEEN DATEPART(MM,@FromDate) AND DATEPART(MM,@ToDate) ---AND T.Day BETWEEN DATEPART(DD,@FromDate) AND DATEPART(DD,@ToDate)AND (ISNULL(@EmpID,'')='' OR T.EID = @EmpID)AND (ISNULL(@CID,'')='' OR T1.CID = @CID)AND (ISNULL(@BID,'')='' OR T1.BID = @BID)AND (ISNULL(@Dept,'')='' OR ',' + @Dept + ',' LIKE '%,' + CAST(T1.DID AS varchar) + ',%')AND (ISNULL(@userid,'')='' OR T1.userid = @userid)--AND (ISNULL(@Grade,'')='' OR T1.Grade = @Grade)AND (ISNULL(@Grade,'')='' OR ',' + @Grade + ',' LIKE '%,' + CAST(T1.Grade AS varchar) + ',%')--AND MONTH = 9i want to link frooaster funtion to f1 funtionthanks 4 the helpimmad uddin ahmed |
|