2011-10-31 4 views
0

Je cherche le chiffre le plus proche de 5 dans la rangée de colonnes et je l'ordonne de manière à ce que le plus proche soit en haut.SQL Trouver le relevé le plus proche

Voici ce que je suis arrivé ....

SELECT TOP 1 * FROM Technicians WHERE Zone=15 ORDER BY Zone DESC 

Faire cela dans l'erreur vb et obtenir.

Incompatibilité de type de données dans l'expression de critères.

+0

@marc_s - c'est un message d'erreur Access. Je l'ai tagué pour ça. – JNK

+0

Qu'est-ce qu'une ligne de colonne? – MatBailie

+0

Le titre de votre question ne semble pas correspondre au texte réel –

Répondre

2

Pour commander une colonne numeric de telle sorte que ceux en haut de la liste sont les plus proches 5, vous avez besoin d'une fonction pour vous dire à quel point une valeur est à 5. ABS(value - 5) devrait le faire pour vous .

Cela donne la clause suivante ...

ORDER BY 
    ABS(tableValue - 5) ASCENDING 


Notez toutefois que votre message d'erreur implique que votre champ Zone est pas numérique. Cela signifie que vous devez soit convertir la valeur en type numérique, soit modifier le champ lui-même pour qu'il soit de type numérique.

3

C'est une MS Access erreur, et je suppose que votre champ Zone n'est pas réellement numérique.

Essayez WHERE Zone='15'

+0

Merci pour cela. Je l'ai corrigé. – Merked

Questions connexes