Requte sql MAX

Signaler
-
 mohellebi -
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

Messages postés
14757
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 janvier 2021
151
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
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
73
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)
salut,
peut être
...........Group by NUMMODIF


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

Soyons Toujours à la disposition des autres
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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
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.
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