17. februar 2004 - 18:00Der er
12 kommentarer og 1 løsning
distinct + top
Hej,
Jeg er i gang med at lave en highscore til et lille spil, men jeg kan sku ikke få det til at funk'e...
Jeg har 2 tabeller: 1. User der indeholder userID og sName. 2. Game der indeholder iCorrectAnswers, iTime og userID
Jeg har prøvet med: SELECT TOP 10 iCorrectAnswers, sName, iTime FROM Game LEFT JOIN tUser ON tUser.userID = Game.userID ORDER BY iCorrectAnswers DESC, iTime
ud af det får jeg: 30, john, 190 29, per, 180 10, john, 60 10, lis, 65
Dette virker helt perfekt...
Men nu skal en bruger kun få vist det bedste resultat på highscoren; så det skulle gerne ud sådan her: 30, john , 190 29, per , 180 10, lis, 65
Jeg har prøvet at rode mig ud i noget distinct værk, men jeg kan ikke få det til at virke :(
Det virker ikke: Column tUser.sName invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause. Column tUser.iTime invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
SELECT TOP 10 MAX(iCorrectAnswers), sName, iTime FROM Game LEFT JOIN tUser ON tUser.userID = Game.userID GROUP BY sName,iTime ORDER BY MAX(iCorrectAnswers) DESC, iTime
SELECT TOP 10 iCorrectAnswers, sName, iTime FROM Game G1 LEFT JOIN tUser ON tUser.userID = Game.userID WHERE iCorrectAnsweres = (SELECT MAX(iCorrectAnswers) FROM Game G2 WHERE G1.userID=G2.userID) ORDER BY iCorrectAnswers DESC, iTime
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.