ORDER BY avec count - SQL/NoSQL - Programmation
Marsh Posté le 07-01-2007 à 02:30:38
ORDER BY NombreExpertises
Si tu as renommé la colonne, autant utiliser ce nom
Marsh Posté le 07-01-2007 à 02:43:38
J'avais aussi essayé avec NombreExpertises ; ça ouvre la même fenêtre avec NombreExpertises à la place de Compte.
Tu aurais une idée pour résoudre mon problème ?
Marsh Posté le 07-01-2007 à 08:34:10
Bonjour,
Access ouvre une fenêtre quand il voit une variable qu'il ne connait pas. Il demande alors quelle est sa valeur.
Quand tu écris "ORDER BY count DESC", Access, ne connait pas count.
count n'est pas un nom de colonne.
count(*) pourrait être compris comme étant un nom de colonne par certains SGBD, mais je ne suis pas certain qu'Access accepte cela. Il faudrait essayer "ORDER BY count(*) DESC".
Mais le plus simpe, comme l'a dit mrbebert, serait d'écrire "ORDER BY NombreExpertises"
Tu dis avoir essayé ça. Mais si Access a ouvert une fenêtre, c'était très probablement parce qu'il devait y avoir une petite erreur d'orthographe, par exemple NombreExpertise sans "s", ou autre chose du même genre. Il faut que le nom soit exactement le même que celui est indiqué au début du Select.
Marsh Posté le 07-01-2007 à 08:53:21
Dans pas mal de SGBD, les alias (NombreExpertises ici par exemple) ne peuvent pas être utilisés au même niveau de requête ... seuls les alias dans les sous-requêtes sont bien compris en général.
Donc ici, ORDER BY count(*) devrait marcher ...
Marsh Posté le 07-01-2007 à 01:54:00
Bonsoir,
Je voudrais que cette requête me donne l'expert ayant réalisé le plus d'expertises depuis le début de 2006, j'ai donc fait la requête suivante, mais ça ne classe pas les NombreExpertises, ça classe les experts par ordre alphabétique :
SELECT TOP 1 NomExpert, count(*) AS NombreExpertises
FROM Experts, Villes, Sinistres
WHERE Experts.SiteWebExpert=Villes.SiteWebExpert AND Sinistres.CodePostal=Villes.CodePostal AND Sinistres.Date>#01/01/2006#
GROUP BY Experts.NomExpert;
et quand je rajoute un ORDER BY, la requête devient :
SELECT TOP 1 NomExpert, count(*) AS NombreExpertises
FROM Experts, Villes, Sinistres
WHERE Experts.SiteWebExpert=Villes.SiteWebExpert AND Sinistres.CodePostal=Villes.CodePostal AND Sinistres.Date>#01/01/2006#
GROUP BY Experts.NomExpert
ORDER BY count DESC;
Mais comme tout à l'heure, ça ouvre une fenêtre avec "Entrez la valeur du paramètre
Compte
'Case à remplir' "
Comment faire ?