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

Langage SQL Discussion :

Requête WHERE MAX


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    RETRAITE
    Inscrit en
    Mars 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Mars 2016
    Messages : 3
    Points : 8
    Points
    8
    Par défaut Requête WHERE MAX
    Bonjour à tous

    Je m'occupe d'une petite bibliothèque de village à mes heures perdues et je bute sur cette requête
    Je passe par query pour renvoyer des données Access dans un fichier Excel. Je précise que je suis un débutant en SQL. Je cherche le moyen de remplacer si c'est possible le WHERE (((s1.id)=1)) de ma requête par un WHERE (((s1.id)maximum));
    Renvoyer des valeurs si (s1.id)=1 (s1.id)=2 (s1.id)=3 etc...

    merci a vous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT S1.Dyt, S1.Str, S1.Suj, S1.titre, S3.Gam, S3.Ntre, S3.Nvec
    S1.DatR, S3.DatDpo, S3.DROC, S3.TP2, S3.TP3, S3.TP4, S3.TP5, S3.TP6, S3.TP7, S2.Case_Bac, S3.Num3, S3.Comm
    FROM ((S0 INNER JOIN S1 ON S0.ID = S1.ParentID)
    INNER JOIN S2 ON S1.ID = S2.ParentID)
    INNER JOIN S3 ON S2.ID = S3.ParentID
    WHERE (((S1.ID)=1));

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2013
    Messages : 51
    Points : 74
    Points
    74
    Par défaut
    tu veux la dernière value ou la première? tu peut faire un select top 1 avec un order by Ascending ou descending

  3. #3
    Futur Membre du Club
    Homme Profil pro
    RETRAITE
    Inscrit en
    Mars 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Mars 2016
    Messages : 3
    Points : 8
    Points
    8
    Par défaut Requête Where Max
    Bonjour Buzzak

    Je cherche la dernière Value

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2013
    Messages : 51
    Points : 74
    Points
    74
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT Top 1 S1.Dyt, S1.Str, S1.Suj, S1.titre, S3.Gam, S3.Ntre, S3.Nvec
    S1.DatR, S3.DatDpo, S3.DROC, S3.TP2, S3.TP3, S3.TP4, S3.TP5, S3.TP6, S3.TP7, S2.Case_Bac, S3.Num3, S3.Comm
    FROM ((S0 INNER JOIN S1 ON S0.ID = S1.ParentID)
    INNER JOIN S2 ON S1.ID = S2.ParentID)
    INNER JOIN S3 ON S2.ID = S3.ParentID
    order by S1.Id desc;

  5. #5
    Futur Membre du Club
    Homme Profil pro
    RETRAITE
    Inscrit en
    Mars 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Mars 2016
    Messages : 3
    Points : 8
    Points
    8
    Par défaut Requête WHERE MAX
    Merci beaucoup je séchais depuis hier.

    Bonne soirée

  6. #6
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 300
    Points : 39 641
    Points
    39 641
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Buzzak Voir le message
    tu veux la dernière value ou la première? tu peut faire un select top 1 avec un order by Ascending ou descending
    ce n'est pas une bonne méthode, car ça vous contraint à parcourir tous les ID, à les trier, et à utiliser une requête non standard (top 1)

    il est préférable de vérifier qu'il n'existe pas d'ID de valeur supérieure ou inférieure avec where not exists

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2013
    Messages : 51
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    ce n'est pas une bonne méthode

    Cela dépends de ce que tu as besoins, mais effectivement il y d'autre façon plus "clean"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT LAST(column_name) FROM table_name;

  8. #8
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 300
    Points : 39 641
    Points
    39 641
    Billets dans le blog
    9
    Par défaut
    Non plus, du moins si on veut assurer la portabilité, car last(colname) n'est pas standard

    Il faut comme je le disais faire un test de non existence, ou bien vérifier que la ligne est bien égale au max de la colonne

    Donc soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT X1.Dyt, X1.Str, [...] , S3.Comm
    FROM ((S0 INNER JOIN S1 as X1 
                 ON X1.ParentID = S0.ID)
           INNER JOIN S2 
              ON S2.ParentID = X1.ID)
           INNER JOIN S3 
             ON S3.ParentID  = S2.ID 
    WHERE NOT EXISTS
         (select 1 
          from S1 as Y1
          where Y1.ID > X1.ID)
    ;
    Soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT S1.Dyt, S1.Str, [...] , S3.Comm
    FROM ((S0 INNER JOIN S1  
                 ON S1.ParentID = S0.ID)
           INNER JOIN S2 
              ON S2.ParentID = S1.ID)
           INNER JOIN S3 
             ON S3.ParentID  = S2.ID 
    WHERE S1.ID =
         (select max(ID) 
          from S1)
    ;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [9i 9.2.0.1] Pb requete where
    Par stephDeZ dans le forum Oracle
    Réponses: 10
    Dernier message: 07/02/2006, 00h00
  2. Requete avec Max
    Par Le Pharaon dans le forum Langage SQL
    Réponses: 11
    Dernier message: 16/01/2006, 10h59
  3. [Requete][Where] Quelle est l'utilité d'une clause: 1=1 ?
    Par alpachico dans le forum Langage SQL
    Réponses: 8
    Dernier message: 25/12/2005, 18h40
  4. [SQL] requete select max
    Par kabikou dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 19/10/2005, 16h18
  5. Pb requete avec MAX
    Par Karibou dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 18/08/2005, 14h05

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