Citat:
Ursprungligen postat av faddoo
Jag har lyckats med att skapa en SQL query som funkar förutom en sista grej, att den visar antal användare flera gånger och vill att den skall visas en gång bara under en tabell.
Jag använder SQL med ASP.NET
Kod:
SELECT TOP 50 Users.Username AS Användare, ROUND(StatisticsMain.TotalMinutes / 60, 0) AS Timmar
FROM ((Usergroups INNER JOIN Users ON Users.UsergroupID = Usergroups.ID) INNER JOIN StatisticsMain ON StatisticsMain.UserID = Users.ID)
WHERE (Usergroups.ID = 2) AND (StatisticsMain.StartDateTime BETWEEN #5/2/2011# AND #6/2/2011#)
ORDER BY StatisticsMain.TotalMinutes DESC
BILD:
http://data.fuskbugg.se/skalman02/4d...a770_count.jpg
Är en hyggligt smal sak att lösa men det ser ut som att det finns två varianter vilka i sin tur beror på vad det är du vill få ut egentligen. Vill du har största värdet på antalet TotalMinutes per användare eller vill du ha totala värdet på TotalMinutes per användare. Utgår vi ifrån det första så blir det:
Kod:
SELECT TOP 50 U.Username AS [Användare],
ROUND(X.TotalMinutes / 60, 0) AS [Timmar]
FROM UserGroups UG
JOIN Users U ON U.UserGroupID = UG.ID
JOIN
(
SELECT UserID, MAX(TotalMinutes) AS [TotalMinutes]
FROM StatisticsMain
WHERE StartDateTime BETWEEN #5/2/2011# AND #6/2/2011#
GROUP BY UserID
) X ON X.UserID = U.ID
WHERE UG.ID = 2
ORDER BY 2 DESC
Försökte att köra på rätt kolumn- och tabellnamn men läs gärna igenom en gång innan du copy-pastar ifall jag skrivit något fel.