Jag undrar om någon kan hjälpa mig med den här SQL frågan. Är det så här du menar? Det funkar ju perfekt.Summering i SQL fråga
Databasen är Access men det har ju ingen större betydelse för detta.
Det jag håller på att utveckla är ett "Stämpel klocka" som man ska kunna hålla reda på flex mm.
Jag har en tabell som heter TimeEntryLog där alla instämplingar loggas. I tabellen finns det x antal fält men de viktiga fälten är InTime och OutTime. Jag räknar ut hur många minuter som en person har jobbat genom DateDiff funktionen så långt är det inga problem men personen i fråga kan ju stämpla in mer än en gång per dag. Finns det någon möjlighet att göra en summering på arbetstiderna per dag. Summera allt är ju inga problem det gör jag i uttrycket nedan men hur jag ska kunna summera per dag det övergår mitt förstånd.
PARAMETERS UserN Text ( 255 );
SELECT [Users].[UserName], [Users].[FirstName], [Users].[LastName], [TimeEntryLog].[InTime], [TimeEntryLog].[OutTime], DateDiff("n",[TimeEntryLog].[InTime],[TimeEntryLog].[OutTime]) AS SumWorkedTime,
(SELECT SUM(DateDiff("n",[TimeEntryLog].[InTime],[TimeEntryLog].[OutTime])) FROM TimeEntryLog INNER JOIN Users ON [TimeEntryLog].[UserID]=[Users].[UserID]
WHERE [Users].[UserName]=[UserN])
FROM TimeEntryLog INNER JOIN Users ON [TimeEntryLog].[UserID]=[Users].[UserID]
WHERE [Users].[UserName]=[UserN]
ORDER BY [InTime];Sv: Summering i SQL fråga
<code>
PARAMETERS UserN Text ( 255 );
SELECT [Users].[UserName],
[Users].[FirstName],
[Users].[LastName],
CDate(Int([TimeEntryLog].[InTime])) AS Datum,
Min([TimeEntryLog].[InTime]) As InTime,
Max([TimeEntryLog].[OutTime]) AS OutTime,
Sum([TimeEntryLog].[OutTime] - [TimeEntryLog].[InTime]) * 1440 AS SumWorkedTime
FROM Users LEFT JOIN
TimeEntryLog ON [Users].[UserID] = [TimeEntryLog].[UserID]
WHERE [Users].[UserName] = [UserN]
GROUP BY [Users].[UserName],
[Users].[FirstName],
[Users].[LastName],
Int([TimeEntryLog].[InTime]);
</code>Sv: Summering i SQL fr&amp;#229;ga
Skulle du kunna förklara lite mer i detalj vad du gör?