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 :

Requete, Affichage par secteur


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 114
    Points : 55
    Points
    55
    Par défaut Requete, Affichage par secteur
    Bonjour,
    Voila mon problème,

    J'ai une requête basique qui me donne une liste avec de nombreux champs jusque la tout va bien.....
    Chaque ligne étant composée entre autre d'un individu,d'un acteur référant, d'un lieu et d'autres informations
    A chaque individu correspond un acteur.
    Exemple:
    Code_Indiv-----Acteur--------Lieu-------------etc
    0524165-------Lamule--------Centre 2---------
    54655---------Dupont--------Centre1----------

    J'aimerais savoir si il est possible de modifier ma requête pour qu'elle affiche une liste ou elles me comptent mes individus par agent puis par secteur.
    Un secteur étant une liste d'acteurs(un groupe d'acteur).
    Par exemple, le secteur sera {Dupont,......,Lamule}
    De plus, il me faudrait calculer pour chaque acteur le nombre d'individus qui est rattaché au Centre 1.

    Secteur1-------Nbr_Indiv---------- Nb indiv au Centre1
    Acteur1-------- 25---------------- 5---------------------------
    Acteur2---------30--------------- 20-----------------------------

    Voila merci
    si vous avez une idée, n'hésitez pas
    A plus

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Oui c'est possible, mais il faut plus de détails sur la structure de vos tables (notamment pour la déclaration des secteurs) si vous voulez un exemple.

  3. #3
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 114
    Points : 55
    Points
    55
    Par défaut
    Voici la liste des tables simplifiés :

    INDI =>on récupère le code indi
    ACTEUR => on récupère le code_acteur ou le nom_acteur.Un groupe de noms acteurs va constituer un secteur.
    UNITER => on récupère le lieu (UNITER.LIBL) dans cette table associé à l'indi et à l'acteur correspondant.

    Le lien entre ces tables se fait par le biais de tables intermédiaires.

    Ma requete est de cette forme :
    SELECT INDI.NOM,INDI.CODE,ACTEUR.NOM,UNITER.LIBL
    FROM INDI, ACTEUR , UNITER,
    +(Tables intermédiares) TYPUTE,INTERV,TYPPRO,PROCED,PORTEF,PHASE PTOPTYP, UNITOP
    WHERE
    CONDITIONS SUR LES TABLES+RELATIONS

    Je sais pas si j'ai répondu à votre question
    Merci pour la réponse

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Est-ce que le secteur est identifié dans une table ou bien calculé à la volée ?

  5. #5
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 114
    Points : 55
    Points
    55
    Par défaut
    Le secteur n'est pas identifié dans les tables.
    En fait, le secteur est une liste d'acteurs prédéfinis. Ces acteurs, je les retrouve dans le résultat de ma requête mais de manière désordonnée.
    Donc, il faudra que je rentre manuellement le nom des acteurs composant les différents secteurs et que j'obtienne le nombre d'individus par acteur et par secteur.
    secteur1={dupont,...,pignon}
    secteur2={bernard,....,ferré}
    Merci

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Quelque chose dans ce style :
    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
      SELECT CASE
               WHEN ACTEUR.NOM IN ('dupont' , ..., 'pignon') THEN 'Secteur 1'
               WHEN ACTEUR.NOM IN ('bernard', ..., 'ferré' ) THEN 'Secteur 2'
               ...
             END as Secteur,
             ACTEUR.NOM,
             COUNT(*) as Nbr_Indiv,
             count(CASE UNITER.LIBL WHEN 'Centre 1' then 1 end)  as Nbr_Indiv_C1
        FROM INDI, ACTEUR , UNITER, ... 
       WHERE ...
    GROUP BY CASE
               WHEN ACTEUR.NOM IN ('dupont' , ..., 'pignon') THEN 'Secteur 1'
               WHEN ACTEUR.NOM IN ('bernard', ..., 'ferré' ) THEN 'Secteur 2'
               ...
             END,
             ROLLUP(ACTEUR.NOM);
    Le case pour gérer vos secteur, le rollup dans le group by pour les lignes de sous-totaux, et le count case pour ne compter que les Centre1.

  7. #7
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 114
    Points : 55
    Points
    55
    Par défaut
    Salut,
    Merci beaucoup Waldar.
    La requête fonctionne parfaitement.
    A plus

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

Discussions similaires

  1. Requete affichage valeurs diferentes d'un champs
    Par joxbl dans le forum Requêtes
    Réponses: 4
    Dernier message: 10/11/2005, 15h27
  2. Réponses: 5
    Dernier message: 29/09/2004, 11h05
  3. résultat d'une requete affiché par mois
    Par zorely dans le forum Langage SQL
    Réponses: 7
    Dernier message: 03/05/2004, 07h18
  4. AFFICHAGE PAR DEFAUT DANS DBLOOKUPCOMBOX
    Par AYITE dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/02/2004, 20h57

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