Try like this-
table structure:
EID EDATETIME CARDNUMBER
1 2003-04-25 14:26:27.000 10024
-----In
1 2003-04-25 14:26:44.000 10054
-----Out
2 2003-04-25 14:26:03.000 10024
2 2003-04-25 14:26:14.000 10054
Query-
SELECT CardNumber, SUM(MinWorked) as TotalWorked
FROM(SELECT TimeIn.CardNumber, TimeIn.DateTime PunchIn,
TimeOut.DateTime PunchOut,
DateDiff(minute, TimeIn.DateTime, TimeOut.Datetime) as MinWorked
FROM CardTransactions TimeIn, CardTransactions TimeOut
WHERE TimeIn.CardNumber = TimeOut.CardNumber
AND DateDiff(day, TimeIn.DateTime, TimeOut.DateTime) = 0
AND TimeIn.EID = 1
AND TimeIn.DateTime > '1/1/1900'
AND TimeIn.DateTime < '1/1/9999'
AND TimeOut.EID = 2) Tmp
Group By CardNumber
Order by CardNumber
Hope this will help you