Requte sql MAX

mohellebi - 8 mai 2013 à 23:24
 mohellebi - 9 mai 2013 à 15:42
Bonjour à tous

je travaille avec vb 2010 et sql server, et je tente de réaliser une recherche à base d'une requête sql qui devait m'afficher le plus grand numéro de la colonne NUMMODIF.
alors j'ai essayé avec la requête suivante :

SELECT max(nummodif), FROM table WHERE num = '" & recherche & "'


la requête s’exécute normalement, en revanche j'ai un problème dans le cas ou je rajoute une autre colonne pour l'afficher, exemple:

SELECT num, max(nummodif), FROM table WHERE num = '" & recherche & "'


merci d'avance pour toute personne pourra m'aider

6 réponses

NHenry Messages postés 15048 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 19 mars 2023 156
9 mai 2013 à 00:14
Bonjour,

Les fonctions max, min, sum, ... sont des fonctions qui regroupent les résultats, donc, même si il y a plusieurs enregistrements sélectionnés, il y aura une seule ligne retournée.

De fait, tu ne peux pas mélanger les 2 types de champs.

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
9 mai 2013 à 10:16
Salut

Les 2 syntaxes affichées ici ne doivent pas fonctionner : Il y a une virgule de trop avant le FROM.

"en revanche j'ai un problème ..."
Lequel ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
0
salut,
peut être
...........Group by NUMMODIF


et suis les deux conseils avant moi tu verra !!!!

Soyons Toujours à la disposition des autres
0
Merci pour vos repenses très utiles
Pour les virgules je suis vraiment désolé mais c'est juste une erreur de frappe.
oui effectivement j'ai déjà essayer avec GROUP by, mais si je rajoute la close WHERE la requête ne s’exécute pas.
pour bien expliquer mon cas : voila la table

num  nummodif
1    0
1    1
2    0
2    1
2    2
3    0 



je voudrai par exemple avoir le numéro de nummodif le plus élevé avec la close WHERE num = '2'

Merci à vous tous pour votre aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 220
9 mai 2013 à 14:49
Bonjour,
essaye ce genre :
SELECT ceci,cela,et_encore_ceci FROM ta_table WHERE ceci=(SELECT MAX(ceci) FROM ta_table)
en remplaçant ceci, cela, et_encore_ceci par des champs et ta_table par ta table

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
salut ucfoutu

Si j'ai à reprendre exactement ta requête par rapport à mon exemple ci-dessus, j'aurais quelque chose comme ça :

SELECT num,nummodif FROM matable WHERE nummodif=(SELECT MAX(nummodif) FROM matable) 


maintenant ma question, est à quel moment je vais dire WHERE num='2', parce-que en fin de compte le plus important est d'avoir ce résultat :

num    nummodif 
 2        2   


d’après l'exemple bien sur

Merci encore UCFOUTU
0
Rejoignez-nous