Click here to Skip to main content
15,910,603 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
SQL
--DECLARE TABLE VARIABLE @EMPAttendence
DECLARE @EMPAttendence TABLE
(employeeid INT,
 fullname VARCHAR(275),
 checktime DATETIME,
 actiontype CHAR(5)
)

-- INSERT DATA FROM TABLE Employee_Attendance AND TM_User INTO @EMPAttendence

INSERT @EMPAttendence 

-- SELECT DATA FROM Employee_Attendance AND TM_User 

SELECT EA.employeeid,TU.fullname,EA.checktime,EA.actiontype FROM Employee_Attendance EA
	JOIN TM_User TU ON employeeid=TM_UserID  
WHERE EA.employeeid=88 AND CONVERT(VARCHAR(4),DATEPART(YEAR, checktime)) + '/'+ CONVERT(VARCHAR(2),DATEPART(MONTH, checktime)) + '/' + CONVERT(VARCHAR(2),DATEPART(DAY, checktime))=CONVERT(VARCHAR(4),DATEPART(YEAR, '2014-02-27')) + '/'+ CONVERT(VARCHAR(2),DATEPART(MONTH, '2014-02-27')) + '/' + CONVERT(VARCHAR(2),DATEPART(DAY, '2014-02-27'))

-- INSERT DATA INTO TEMP TABLE WHERE ACTIONTYPE='I'
SELECT employeeid,fullname,checktime,actiontype,Rn = ROW_NUMBER() OVER (ORDER BY employeeid) INTO #IN FROM @EMPAttendence WHERE actiontype = 'i'
 
-- INSERT DATA INTO TEMP TABLE WHERE ACTIONTYPE='O'

SELECT employeeid,fullname,checktime,actiontype ,Rn = ROW_NUMBER() OVER (ORDER BY employeeid) INTO #Out FROM @EMPAttendence WHERE actiontype = 'o'
 
-- DECLARE @Min

DECLARE @Min INT
	SET @Min = (SELECT Sum(DATEDIFF(MINUTE,TE1.checktime,TE2.checktime)) AS MINUTE FROM #IN AS TE1
	INNER JOIN #Out AS TE2
	ON TE1.rn = TE2.rn)


 
SELECT DISTINCT EA.employeeid,TU.fullname,(SELECT CAST( @Min/60 AS VARCHAR(5))+ ' Hrs' + ':'+ RIGHT('0' + CAST( @Min%60 AS VARCHAR(2)), 2)+' Min' AS 'WorkingTime') WorkedHours
FROM Employee_Attendance EA  JOIN TM_User TU ON employeeid=TM_UserID WHERE EA.employeeid=88 AND CONVERT(VARCHAR(4),DATEPART(YEAR, checktime)) + '/'+ CONVERT(VARCHAR(2),DATEPART(MONTH, checktime)) + '/' + CONVERT(VARCHAR(2),DATEPART(DAY, checktime))=CONVERT(VARCHAR(4),DATEPART(YEAR, '2014-02-27')) + '/'+ CONVERT(VARCHAR(2),DATEPART(MONTH, '2014-02-27')) + '/' + CONVERT(VARCHAR(2),DATEPART(DAY, '2014-02-27'))
Drop Table #IN
Drop Table #Out
Posted
Updated 27-Feb-14 20:10pm
v4
Comments
Member 10501509 27-Feb-14 4:18am    
getting output like this
employeeid fullname WorkedHours
81 Kishore Alla 2 Hrs:09 Min
88 Karthik Ayinala 2 Hrs:09 Min
97 Nagajayanth Bussa 2 Hrs:09 Min
128 Anil Keethepalli 2 Hrs:09 Min
190 Alekhya Chunchu 2 Hrs:09 Min
311 Aditya Mahapatro 2 Hrs:09 Min
401 Alekhya Katuri 2 Hrs:09 Min
407 Saratchandra Rajkiran 2 Hrs:09 Min
409 Harish Kumar Ramakrishnappa 2 Hrs:09 Min
447 Abhilash Nair 2 Hrs:09 Min
560 Aishwarya Shekar 2 Hrs:09 Min
Member 10501509 27-Feb-14 4:57am    
Please any one give solution for the above problem
OriginalGriff 28-Feb-14 2:38am    
How do you expect us to give you a solution, when there is no problem there?
Look at it!
Where is the query?
"D" on it's own will not do anything...
Member 10501509 4-Mar-14 0:04am    
you can see the problem for every employee i am getting 2 hrs 09 min

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900