IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

DMax dans un Sql


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Points : 165
    Points
    165
    Par défaut DMax dans un Sql
    Bonsoir,

    Dans ce « strSQL » Je voudrai obtenir l’âge maxi, mais j’obtiens une erreur « Arguments incorrect dans l’expression Dmax ».

    Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    strSQL = "SELECT [rqt Adhérents].[Nom Prénom], NuméroAdhérent, Numéro, Age, " & _    
                  "DMax(Age) AS AgeMaxi " & _
                  "FROM [rqt Adhérents] " & _
                  "WHERE ((([rqt Adhérents].Age) Between 4 And 8))" & _
                  "ORDER BY [rqt Adhérents].Age; "
    Merci pour votre aide.

    Salutations.

    Jacques

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 264
    Points : 19 430
    Points
    19 430
    Billets dans le blog
    63
    Par défaut
    Salut,

    il faut préciser la table source dans le dmax(age,matable) ou l'inverse,

    Mais pourquoi de pas utiliser un regroupement sur ta requête et utiliser la fonction max(age) (de regroupement) ?

    @+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Points : 165
    Points
    165
    Par défaut
    Bonsoir User,

    Merci pour ta réponse,

    J'ai essayé mais sans succés.

    "aucune valeur donnée pour un ou plusieurs des paramètree requis"

    DMax([Age],[rqt Adhérents]) AS AgeMaxi

    Salutations

  4. #4
    Membre confirmé
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Points : 580
    Points
    580
    Par défaut
    salut,

    et ceci te donne quoi ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    strSQL ="SELECT P.[Nom Prénom], P.NuméroAdhérent, P.Numéro, P.Age, " & _    
                  "FROM [rqt Adhérents] as P" & _ 
                  "WHERE Age = (SELECT Max(Age) FROM [rqt Adhérents] As S WHERE P.NuméroAdhérent = S.NuméroAdhérent AND P.Age Between 4 And 8);"

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Points : 165
    Points
    165
    Par défaut
    Bonsoir User

    Merci pour ta réponse, j'ai du mettre des doubles qotes pour ne pas avoir d'erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DMax(""[Age]"",""rqt adhérents"") AS AgeMaxi
    Mais le champ "AgeMaxi" me donne l'age maxi de tous les enregistrements, alors que j'ai besoin uniquement de celui du Where 4 à 8.

    Merci pour ton aide

    Salutations

    Jacques

  6. #6
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Citation Envoyé par Petogaz
    salut,

    et ceci te donne quoi ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    strSQL ="SELECT P.[Nom Prénom], P.NuméroAdhérent, P.Numéro, P.Age, " & _    
                  "FROM [rqt Adhérents] as P" & _ 
                  "WHERE Age = (SELECT Max(Age) FROM [rqt Adhérents] As S WHERE P.NuméroAdhérent = S.NuméroAdhérent AND P.Age Between 4 And 8);"

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Points : 165
    Points
    165
    Par défaut
    Bonjour petogaz,

    Pas mal ta réponse, et merci.

    Mais j'ai besoin du champ AgeMaxi ,

    Comment le créer ?

    Pour ma compréhension et celles des personnes de mon niveau peux-tu nous donner quelques explications.

    La rqt Adhérents tu la nommes bien deux fois, une fois en P et une autre fois en S.
    Pourquoi ?

    Salutations

    Jacques

  8. #8
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    AgeMaxi, tu n'en as pas besoin, puisqu'il a la même valeur que P.Age

  9. #9
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Points : 165
    Points
    165
    Par défaut
    Bonsoir Tofalu,

    Merci pour ton aide,

    Oui mais si je parcours mes enregistrements, je veux avoir le Dmaxi pour chaque enregistrement.
    Est-ce que c'est le cas actuellement avec le champ Age ? Je ne le crois pas ou alors la requête ne marche pas car j'ai une valeur de 7 alors que l'âge maxi est 8.

    Salutations

    Jacques

  10. #10
    Membre confirmé
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Points : 580
    Points
    580
    Par défaut
    salut jmde,

    j'avoue que j'ai du mal à te saisir. dis nous exactement ce que tu veux.
    donne un extrait de ta table et un résultat souhaité ce sera plus simple.

  11. #11
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Points : 165
    Points
    165
    Par défaut
    Bonsoir Petogaz,

    C'est simple je voudrai avoir à coté de mon champ Age un champ AgeMaxi.

    Ce qui fait que pour une plage d'âge de 4 à 8 ans les valeurs du champ Age =
    4
    5
    6
    7
    8
    et pour le champ
    AgeMaxi =
    8
    8
    8
    8
    8
    Cest tout.

    Merci et à bientôt.

    Salutations

    Jacques

  12. #12
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    SELECT matable.age, DMax("age","matable","age>3 and age<9") AS maxage
    FROM matable;
    Elle est pas belle la vie ?

  13. #13
    Membre confirmé
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Points : 580
    Points
    580
    Par défaut
    salut,

    ou ceci (au lieu d'utiliser un DMAX):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    strSQL = "SELECT S.[Nom Prénom], S.NuméroAdhérent, S.Numéro, S.Age, " & _    
                  "(SELECT Max(P.Age) AS AgeMaxi FROM [rqt Adhérents] AS P) " & _ 
                  "FROM [rqt Adhérents] AS S" & _ 
                  "WHERE (((S.Age) Between 4 And 8))" & _ 
                  "ORDER BY S.Age; "
    NB : je n'ai pas tester ! j'espère que le moteur Jet supporte ce genre d'imbrication

Discussions similaires

  1. Insertion dans table SQL server (Trigger) Aidz moi SVP????
    Par pop bob dans le forum Développement
    Réponses: 2
    Dernier message: 30/07/2005, 23h55
  2. fonction équivalente à la fonction MOD (oracle) dans ms-sql
    Par rodrigue50 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 14/07/2005, 16h14
  3. une variable dans du SQL ??
    Par Black Pearl dans le forum Langage SQL
    Réponses: 3
    Dernier message: 18/06/2005, 12h55
  4. ASP et valeur NULL dans requêtes SQL
    Par chuck_m dans le forum ASP
    Réponses: 7
    Dernier message: 13/08/2004, 11h15
  5. uniqueidentifier et INSERT dans MS-SQL
    Par Dlfine dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 12/08/2004, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo