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 :

MIN ( par ligne)


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Par défaut MIN ( par ligne)
    Bonjour

    J'assai de faire une requete imbriqué avec min mais impossible
    Je voudrai trouver le minimum sur une ligne d'enregistrement.

    Voila ma table (pas tres belle, mais comment vous faite pour avoir une belle table )

    |--------|-----|------|------|
    | nom | prix1 | prix2 | prix3 |
    |--------|-----|------|------|
    |toto | 2 | 37 | 50 |
    |tata | 3 | 25 | 975 |
    |--------|-----|------|------|


    Et j'aimerai avoir quand je fais "where nom = "toto" --> 2

    J'espere etre clair

    Merci

  2. #2
    Membre émérite Avatar de Mathusalem
    Profil pro
    IT moa
    Inscrit en
    Décembre 2003
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : IT moa

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 008
    Par défaut
    je propose ça en attendant qu'un expert passe dans le coin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select min(prix)
    from ( (select min(prix1) as prix from zetable where nom = 'toto')
    union (select min(prix2) as prix from zetable where nom = 'toto')
    union (select min(prix3) as prix from zetable where nom = 'toto') )

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT min(prix1) AS prix FROM zetable WHERE nom = 'toto'
    Il va me chercher la minimum par colonne là.....

    Ta requete ne marche pas l'expert
    error = "Every derived table must have its own alias"...


  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    Deux solutions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    SELECT  nom
        ,   MIN(prix)
    FROM    
        (   SELECT  nom
                ,   prix1   AS prix 
            FROM    matable
        UNION
            SELECT  nom
                ,   prix2   AS prix 
            FROM    matable
        UNION
            SELECT  nom
                ,   prix3   AS prix 
            FROM    matable
        )   AS tbl
    GROUP BY nom
    ;
    SELECT  nom
        ,   CASE
            WHEN    prix1 >= prix2  AND prix1 >= prix3
                    THEN prix1
            WHEN    prix2 >= prix1  AND prix2 >= prix3
                    THEN prix2
            ELSE    prix3
            END AS  prix
    FROM    matable
    ;
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Par défaut
    Tu conseil quelle solution?
    Sinon la premiere marche et je voulais savoir pourquoi le group by etait obligatoire.

    Merci l'expert

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    Citation Envoyé par afrodje
    je voulais savoir pourquoi le group by etait obligatoire.
    Il faut bien préciser que le regroupement des valeurs de prix pour en déterminer le minimum se fait sur nom
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

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

Discussions similaires

  1. [Débutant] min par ligne non null
    Par tenderstoune dans le forum MATLAB
    Réponses: 2
    Dernier message: 30/06/2010, 00h53
  2. Parcourir un Db_GRID ligne par ligne
    Par sanosuke dans le forum Bases de données
    Réponses: 8
    Dernier message: 12/05/2008, 12h14
  3. Réponses: 4
    Dernier message: 02/09/2004, 21h43
  4. [TSynMemo] Positionnement par ligne et colonne
    Par Mercilius dans le forum Composants VCL
    Réponses: 9
    Dernier message: 16/04/2003, 16h22

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