Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 General SQL Server Forums
 New to SQL Server Programming
 link

Author  Topic 

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 link

this is my function


ALTER FUNCTION [dbo].[26F1]
(
@CID int,
@BID int,
@EmpID int,
@FromDate Datetime,
@ToDate Datetime,
@Dept VARCHAR(50),
@userid VARCHAR(50),
@Grade VARCHAR(50)

)
RETURNS TABLE
AS
RETURN

SELECT
D.*,
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 TotalRow
FROM
(
--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 ALL

SELECT
--DISTINCT
T.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.CType
from
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.BID
LEFT OUTER JOIN Employee T1 ON T.EID = T1.EID --AND T.EBID = T1.BID
LEFT 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.Date
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 T.BID = T.EBID
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 T1.AttExcempt <> 1
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) + ',%')

UNION ALL

SELECT
T.CID,
T.EID,
T.CheckTime,
T.Status,
EBID BID,
EBID,
--ID AttendID
2 AttendID,
Remarks,
Comments,
Case WHEN Remarks LIKE '%Personal%' THEN 1
ELSE 0 END InBetween,
'' Night,
'' CType
from
ShortLeave 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 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) + ',%')

)D
LEFT OUTER JOIN Employee T on D.EID = T.EID
Where
--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 TABLE
AS
RETURN

SELECT
T.*,
Convert (Datetime,
convert (varchar,Year)
+'-'+
convert (varchar,MOnth)
+'-'+
convert (varchar,Day)
)
Date,
T2.Night
FROM
(
SELECT
CID,
BID,
EID,
SName,
Year,
Month,
substring( Col, 2, 2 )Day
from
ROOASTER
UNPIVOT (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
)T
INNER JOIN Employee T1 ON T.EID = T1.EID AND T.BID = T1.BID
LEFT OUTER JOIN Shift T2 ON T.SName = T2.Shift

WHERE
DATEADD(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 = 9


i want to link frooaster funtion to f1 funtion
thanks 4 the help
immad uddin ahmed

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2013-10-07 : 05:29:16
without knowing anything about your requirement and what these functions do how do you think one will be able to help you out?

Post some sample data and explain your issue so that someone can help you out.

------------------------------------------------------------------------------------------------------
SQL Server MVP
http://visakhm.blogspot.com/
https://www.facebook.com/VmBlogs
Go to Top of Page
   

- Advertisement -