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 :

Question de débutant en Sql


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 17
    Points : 10
    Points
    10
    Par défaut Question de débutant en Sql
    Bonjour,

    Je "débute" en sql et j'aurai besoin d'aide de votre part

    Les deux tables :
    -Tbl_adhasso
    ---Num_adhasso
    ---Annee
    ---Asso
    ---Num_structure

    Le champ Num_structure fait référence à l'ID (Num_structure) de la deuxième table :
    -Tbl_structure
    ---Num_structure
    ---Nom_structure
    ---Insee_structure
    ---Region_structure

    Les structures sont des départements et des régions. Les deux sont dans la même table. Le département a une valeur de "Region_structure" qui fait référence à un parent "Insee_structure" d'un autre enregistrement (qui est une région).
    Si la valeur "Region_structure" est égale à 1000, alors c'est une région. J'ai pris cette astuce pour différencier l'enregistrement 82 du département du Tarne-et-Garonne de l'enregistrement région de Rhône-Alpes

    Par exemple : l'Ain a comme valeur "Region_structure"=82. Je vais chercher l'enregistrement qui a une valeur "82" dans "Insee_structure" ET qui a 1000 en "Region_structure". Je trouve "Rhône-Alpes". Tout va bien.

    Maintenant, je voudrai faire la somme de "Asso" par région avec le nom de la région devant chaque total.

    Sous Access, si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT 
    Sum(tbl_adhasso.[Adherent_adhasso]) AS Adherent, 
    Sum(tbl_adhasso.[Association_adhasso]) AS Association,
    Tbl_structure.Region_structure, 
    Tbl_structure.Nom_structure
    FROM tbl_adhasso 
    INNER JOIN Tbl_structure 
    ON tbl_adhasso.[Num_structure_adhasso]=Tbl_structure.Num_structure
    WHERE (((tbl_adhasso.[Annee_adhasso])=2007))
    GROUP BY Tbl_structure.Region_structure, Tbl_structure.Nom_structure;
    J'obtiens une liste des assos par départements mais elles ne sont pas regroupées par région. Si je supprime la dernière partie ", Tbl_structure.Nom_structure", j'ai bien mes totaux regroupés par régions, mais je n'ai pas le nom des régions, je n'ai que leur numéro.

    Est-ce que je suis suffisament clair pour que qqn puisse m'aider ?

    Merci à vous tous !

    Vincent

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    salut,

    peux tu nous fournir :
    - un petit jeu d'essai
    - le résultat que tu attends avec ce jeu d'essai
    - le résultat que tu obtiens avec ce jeu d'essai

    Merci

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Je ne suis pas certain d'avoir compris ton besoin.
    Seuls les departement sont référencés dans tbl_adhasso?
    Le total pour une région est donc le total pour tous les départements qu'elle contient?

    Si oui, cette requête fera peut être l'affaire, l'idée est de récupérer d'abord les régions, puis les lier avec les départements qu'elle contient et les champs de tbl_adhasso correspondants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT   regions.nom_structure         AS nomregion,
             Sum(asso.adherent_adhasso)    AS adherent,
             Sum(asso.association_adhasso) AS association
    FROM     (SELECT *
              FROM   tbl_structure
              WHERE  region_structure = 1000) regions
             JOIN (SELECT *
                   FROM   tbl_structure
                   WHERE  region_structure <> 1000) departements
               ON regions.insee_structure = departements.region_structure
             JOIN tbl_adhasso asso
               ON departements.num_structure = asso.num_structure_adhasso
    WHERE  asso.annee_adhasso = 2007
    GROUP BY regions.nom_structure

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Snipah : merci de ta réponse, mais j'ai une erreure de syntaxe dans la clause FROM. Ca te dit qqch ?

    Cybher : Comment puis-je te fournir un jeu d'essai ? Un fichier access à télécharger ?

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Tu dois peut etre l'adapter à Access, ne travaillant pas sous access et ne l'ayant pas à disposition, je pourrai difficilement t'en dire plus.

Discussions similaires

  1. Question de débutant en SQL
    Par Pierre GIRARD dans le forum SQL
    Réponses: 10
    Dernier message: 08/06/2013, 18h20
  2. question de débutant sur SQL
    Par looping dans le forum Bases de données
    Réponses: 1
    Dernier message: 14/03/2009, 10h33
  3. [débutant] Questions sur le Transact-SQL
    Par nagty dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 05/07/2005, 17h43
  4. Questions de débutant
    Par J-P-B dans le forum XMLRAD
    Réponses: 12
    Dernier message: 24/07/2003, 15h19
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

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