Syntaxe incorrecte près de 'LIMITE' a l'aide des mssql
Je suis en train de récupérer certaines données de la base de données, qui doivent être dans le top 10 de les agents, avec le score le plus élevé.
Ma Requête:
SELECT AgentScores.agentID,
AgentScores.totalScore,
Agents.firstname,
Agents.lastname
FROM AgentScores
INNER JOIN Agents ON AgentScores.AgentId=Agents.Agent_id
ORDER BY AgentScores.totalScore DESC
LIMIT 10
Les jointures internes sont de travail. J'ai trouvé la SELECT TOP 10
instruction sql mais.. je veux le 10 agents avec le score le plus élevé et non pas le premier 10 id. Comme vous pouvez le voir je suis de la commande sur le totalscore.
Quelqu'un a une idée de comment résoudre ce problème?
Erreur: Array ( [0] => Array ( [0] => 42000 [SQLSTATE] => 42000 [1] => 102 [code] => 102 [2] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Incorrect syntax near 'LIMIT'. [message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Incorrect syntax near 'LIMIT'. ) )
Merci!
"I want the 10 agents with the highest score and not the first 10 id's"
- C'est ce que votre ORDER BY
clause est pour. Vous n'êtes pas de tri par code de valeurs, alors pourquoi serait-il limite en fonction de ceux-là?OriginalL'auteur Peurr | 2015-07-29
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser la clause TOP au lieu de LIMITER
OriginalL'auteur Gianluca Colombo
Afin de limiter les lignes en MSSQL, vous devez utiliser
SELECT TOP 10
.... au lieu deLIMIT 10
(limite est de un MySQL clause, pas MSSQL)Non, car il sera lu à partir de la clause ORDER BY et sélectionnez le top 10 de correspondance que
non, vous gardez la clause order by est, de sorte qu'il sera de retour les 10 premiers enregistrements en fonction de l'ordre spécifié dans la clause order by.
"Dans une instruction SELECT, utilisez toujours une clause ORDER BY avec la clause TOP. C'est la seule façon d'indiquer de manière prévisible les lignes qui sont affectées par le HAUT." source
OriginalL'auteur drmarvelous