problem with highscore
am 25.06.2007 11:59:56 von zuuperman
Hi folks
I have a little problem converting from an access database to the SQL
server
I need to have a highscore that shows the top 10 scores, grouped by
email.
In my access db i had this query:
"SELECT TOP 10 First(users.user_naam) AS FirstOfuser_naam,
First(users.user_voornaam) AS FirstOfuser_voornaam,
Max(scores.score_score) AS MaxOfscore_score FROM users, scores WHERE
scores.score_userid=[users].[user_id] GROUP BY users.user_email ORDER
BY Max(scores.score_score) DESC"
But in SQL Server, First isn't known, and without it, i get:
... is invalid in the select list because it is not contained in either
an aggregate function or the GROUP BY clause
How can i make it show the top 10 scores, but with no duplicates of
email.
ex:
SELECT users.user_naam, users.user_voornaam,scores.score_score,
users.user_email FROM users, scores WHERE scores.score_userid =
users.user_id
this is the query for selecting all
Someone knows a solution?
Thx
Re: problem with highscore
am 25.06.2007 14:19:03 von Dan Guzman
You might try substituting MIN (or MAX) for FIRST. This will return the
same result as long as user_naam and user_voornaam values are the same for a
given user_email value.
If user_naam and user_voornaam values differ for a given user_email, you'll
need to specify your requirements for which of those values should be
returned. If you really don't care, MIN/MAX will suffice but the values
might be different than the original Access query.
--
Hope this helps.
Dan Guzman
SQL Server MVP
"zuuperman" wrote in message
news:1182765596.662953.248560@o61g2000hsh.googlegroups.com.. .
> Hi folks
>
> I have a little problem converting from an access database to the SQL
> server
> I need to have a highscore that shows the top 10 scores, grouped by
> email.
>
> In my access db i had this query:
> "SELECT TOP 10 First(users.user_naam) AS FirstOfuser_naam,
> First(users.user_voornaam) AS FirstOfuser_voornaam,
> Max(scores.score_score) AS MaxOfscore_score FROM users, scores WHERE
> scores.score_userid=[users].[user_id] GROUP BY users.user_email ORDER
> BY Max(scores.score_score) DESC"
>
> But in SQL Server, First isn't known, and without it, i get:
> .. is invalid in the select list because it is not contained in either
> an aggregate function or the GROUP BY clause
>
> How can i make it show the top 10 scores, but with no duplicates of
> email.
> ex:
> SELECT users.user_naam, users.user_voornaam,scores.score_score,
> users.user_email FROM users, scores WHERE scores.score_userid =
> users.user_id
>
> this is the query for selecting all
>
> Someone knows a solution?
>
> Thx
>
Re: problem with highscore
am 25.06.2007 14:32:47 von Roy Harvey
I'm not entirely sure I understand the desired results, but you might
try something like this.
SELECT TOP 10
users.user_naam,
users.user_voornaam,
MAX(scores.score_score) as MaxScore,
users.user_email
FROM users
JOIN scores
ON scores.score_userid = users.user_id
GROUP BY users.user_naam,
users.user_voornaam,
users.user_email
ORDER BY MaxScore DESC
Roy Harvey
Beacon Falls, CT
On Mon, 25 Jun 2007 02:59:56 -0700, zuuperman
wrote:
>Hi folks
>
>I have a little problem converting from an access database to the SQL
>server
>I need to have a highscore that shows the top 10 scores, grouped by
>email.
>
>In my access db i had this query:
>"SELECT TOP 10 First(users.user_naam) AS FirstOfuser_naam,
>First(users.user_voornaam) AS FirstOfuser_voornaam,
>Max(scores.score_score) AS MaxOfscore_score FROM users, scores WHERE
>scores.score_userid=[users].[user_id] GROUP BY users.user_email ORDER
>BY Max(scores.score_score) DESC"
>
>But in SQL Server, First isn't known, and without it, i get:
>.. is invalid in the select list because it is not contained in either
>an aggregate function or the GROUP BY clause
>
>How can i make it show the top 10 scores, but with no duplicates of
>email.
>ex:
>SELECT users.user_naam, users.user_voornaam,scores.score_score,
>users.user_email FROM users, scores WHERE scores.score_userid =
>users.user_id
>
>this is the query for selecting all
>
>Someone knows a solution?
>
>Thx