2012-06-04 6 views
6

J'ai cette requête ..Vous ne pouvez pas utiliser la commande dans cette sélection?

SELECT ClassId, Sum(TeachersCount) as NumCount 
FROM ClassSubject 
GROUP BY ClassId 
ORDER BY NumCount 

mais quand je lance cela, l'accès ouvre une boîte de me demander la valeur de NumCount? Mais ce n'est pas un paramètre, c'est ... c'est la somme des enseignants qui peuvent enseigner cette classe, et cela doit être calculé. Alors, pourquoi l'accès me demande-t-il sa valeur (NumCount's)? Ce que je veux est de compter le nombre d'enseignant dans une classe et ordonner cela en augmentant la valeur du nombre d'enseignant, je pense que c'est ce que ma requête fait, mais pourquoi me demande-t-il la valeur de NumCount? Une chose de plus, si je supprime cette clause ORDER BY, il fonctionne bien, sans me demander la valeur de NumCount? Donc quel est le problème?

Répondre

6

Vous devez:

SELECT ClassId, Sum(TeachersCount) as NumCount 
FROM ClassSubject 
GROUP BY ClassId 
ORDER BY Sum(TeachersCount) 

Vous pouvez également commander par le nombre ordinal, dans ce cas 2:

ORDER BY 2 
+0

Pourquoi ne puis-je utiliser 'ORDER BY NumCount'? – Razort4x

+0

Vous ne pouvez pas commander par un alias dans MS Access (Jet/ACE) SQL. – Fionnuala

+1

@ Razort4x: et ne vous inquiétez pas, il ne calcule pas à nouveau ... –

Questions connexes