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 :

Aide sur requête


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 162
    Points : 193
    Points
    193
    Par défaut Aide sur requête
    Bonjour,

    Alors voilà, imaginons une table avec 2 colonnes, code et taux.
    Le code est un code de regroupement. Il existe plusieurs occurrences dans la table. Les taux sont variables également.

    Je voudrais récupérer la liste des codes distincts pour lesquels le taux est différent de 0 et qui ont au moins 2 taux différents.

    Par exemple dans ces lignes :
    Code Taux
    1    1,5
    1    1,5
    2    1,5
    2    2,5
    3    1,5
    3    0
    4    2,5
    4    1,5
    4    0
    Il faudrait récupérer :
    2
    4
    La solution doit exister mais je sèche.

    Merci de votre aide.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Il suffit de faire une jointure de la table sur elle-même, avec comme condition le même code, et un taux différent.

    Tatayo.

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,


    une autre solution est de passer par un group by et modéliser la condition "nombre de taux distinct" dans la clause having

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 162
    Points : 193
    Points
    193
    Par défaut
    Citation Envoyé par tatayo Voir le message
    Il suffit de faire une jointure de la table sur elle-même, avec comme condition le même code, et un taux différent.
    Oui, c'est une bonne solution mais le sgbd utilisé (4D) ne prend pas en charge les jointures d'une table sur elle-même.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 162
    Points : 193
    Points
    193
    Par défaut
    Citation Envoyé par punkoff Voir le message
    une autre solution est de passer par un group by et modéliser la condition "nombre de taux distinct" dans la clause having
    J'ai dû essayer des trucs dans ce goût là mais sans succès. Tu peux me donner un exemple de ce que tu proposes ?

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 080
    Points : 30 801
    Points
    30 801
    Par défaut
    Pas plus compliqué que ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT  tb1.code
    FROM    matable tb1
    WHERE   tb1.taux    <> 0
    GROUP BY tb1.code
    HAVING  COUNT(DISTINCT tb1.taux) > 1
    ;
    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.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 162
    Points : 193
    Points
    193
    Par défaut
    Citation Envoyé par al1_24 Voir le message
    Pas plus compliqué que ça
    Merci, ça marche nickel. Je ne connaissais pas cette formulation

  8. #8
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 080
    Points : 30 801
    Points
    30 801
    Par défaut
    Un petit rappel sur les regroupements ?
    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. [Exercice] Aide sur requête
    Par Dobyan08 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 09/02/2006, 15h47
  2. Aide sur requêtes
    Par Virgile59 dans le forum Access
    Réponses: 6
    Dernier message: 08/02/2006, 16h05
  3. aide sur requête sql
    Par Vodkha dans le forum Langage SQL
    Réponses: 9
    Dernier message: 30/08/2005, 17h53
  4. Aide sur Requête SQL
    Par devdev dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/05/2005, 12h33
  5. Besoin d'aide sur requête croisée
    Par keawee dans le forum Access
    Réponses: 7
    Dernier message: 18/11/2004, 09h46

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