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

SQL Oracle Discussion :

Afficher les membres actifs [11gR1]


Sujet :

SQL Oracle

  1. #1
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    492
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Février 2018
    Messages : 492
    Par défaut Afficher les membres actifs
    J'ai une table MEMBRE donc chaque membre a un état (A=actif, D=Dormant, M= Moyen)
    chaque membre passe par plusieurs états chaque jour
    je veux afficher les membre qui sont passés par : A et jamais par D et M

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Essayez ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      select member_id, jour
        from membre
       where etat in ('A', 'D', 'M')
    group by member_id, jour
      having max(etat) = 'A'
          or (min(etat) = 'D' and max(etat) = 'M')

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    492
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Février 2018
    Messages : 492
    Par défaut
    Non monsieur, je veux quand je fais select * from membre where membre_id = 1 il doit pas y avoir des ligne avec D et M et A, il doit y avoir que des D et M (membre non actif)

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 955
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 955
    Par défaut
    Pour les membres qui n'ont que l'état actif et jamais dormant ou moyens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select membre
         , sum(case when etat = 'A' then 1 else 0 end) as etat_actif
         , sum(case when etat in ('D','M') then 1 else 0 end) as etat_dormant_moyens
      from table_membre
     group by membre
    having sum(case when etat = 'A' then 1 else 0 end) >= 1
       and sum(case when etat in ('D','M') then 1 else 0 end) = 0
    Pour les autres faire l'inverse dans le HAVING

  5. #5
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    492
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Février 2018
    Messages : 492
    Par défaut MERCI ça FONCTIONNE
    MERCI ça FONCTIONNE

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Citation Envoyé par hzmedd Voir le message
    Non monsieur, je veux quand je fais select * from membre where membre_id = 1 il doit pas y avoir des ligne avec D et M et A, il doit y avoir que des D et M (membre non actif)
    Certes, mais vous avez modifié votre question plus de trente minutes après ma réponse.
    Votre question initiale étant :
    Citation Envoyé par hzmedd
    je veux faire un script en PLSQL qui afficher les membre qui sont passés par : A et jamais par D et M
    oui bien qui sont passé par D et M et jamais par A
    D'une part ce n'est pas correct envers moi qui ai pris le temps de répondre à votre question initiale, d'autre part ça perturbe la lisibilité du sujet.
    Vous auriez pu simplement répondre que votre question avait évolué.

    Bref.

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

Discussions similaires

  1. [MySQL] Des remerciements pour les membres actifs de ce forum
    Par StephBretagne dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 20/07/2012, 16h23
  2. Afficher les membres connectés
    Par tano93220 dans le forum Langage
    Réponses: 4
    Dernier message: 20/09/2006, 18h32

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