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 :

Un challenge SQL!


Sujet :

Langage SQL

  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Novembre 2006
    Messages : 44
    Par défaut Un challenge SQL!
    Bonjour,

    je travaille sur une requête SQL me permettant de générer des états sous access, j'ai généré la requête sous Access :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT formation.datedébut_formation, formation.datefin_formation, formation.durée_formation, lieu_formation.nom_lieu_formation, action.nature_action, [formation/stagiaire].statut_stagiaire, [formation/stagiaire].fonction_stagiaire, ATT.nom_att, lieu_provenance.nom_lieu, [formation/stagiaire].evaluation_stagiaire
    FROM lieu_provenance INNER JOIN (ATT INNER JOIN ((lieu_formation INNER JOIN ([action] INNER JOIN formation ON action.id_action = formation.id_action) ON lieu_formation.id_lieu_formation = formation.id_lieu_formation) INNER JOIN [formation/stagiaire] ON formation.numserie_formation = [formation/stagiaire].numserie_formation) ON ATT.id_att = [formation/stagiaire].id_attstagiaire) ON lieu_provenance.id_lieu = [formation/stagiaire].id_lieustagiaire;
    Cette requête me sélectionne toutes les entrées mais j'ai besoin d'ajouter la condition suivante : "WHERE matricule_stagiaire=1".

    Les informations que je vous ai transmis sont peu nombreuses, mais je pense que l'un d'entre vous trouvera, on est sur developpez.com quand même

    merci d'avance

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Il serait intelligent d'écrire votre requête proprement et notamment :
    1) en l'indentant pour la lisibilité (les gros patés non merci !)
    2) pour que vous compreniez ce que vous faites car vos jointures soint immondes ! Pour cela vous pouvez utiliser des surnon ou alias.

    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 F.datedébut_formation, F.datefin_formation,
           F.durée_formation, LF.nom_lieu_formation, 
           A.nature_action, FS.statut_stagiaire,
           FS.fonction_stagiaire, ATT.nom_att,
           LP.nom_lieu, FS.evaluation_stagiaire
    FROM   formation AS F
           INNER JOIN lieu_formation AS LF
                 ON LF.id_lieu_formation = F.id_lieu_formation
           INNER JOIN action AS A
                 ONA.id_action = F.id_action
           INNER JOIN [formation/stagiaire] AS FS
                 ON F.numserie_formation = FS.numserie_formation 
           INNER JOIN ATT 
                 ON ATT.id_att = FS.id_attstagiaire 
           INNER JOIN lieu_provenance AS LP
                 ON LP.id_lieu = FS.id_lieustagiaire
    Cepandant et avant de résoudre votre problème que devrait vous sauter aux yeux, je vous conseille fortement d'éviter dans vos noms d'objet (table, colonne) touta autre caractères que les 26 lettres de l'alphabet NON ACCENTUÉES et les 10 chiffres ainsi que le blanc souligné. Ainsi vous respecterez la norme SQL et surtout vous éviterez les emmerdements sans noms que l'usage de caractères interdit procure avec des outils tiers...

    Donc corrigez :
    • datedébut_formation
    • durée_formation
    • formation/stagiaire


    Une fois ceci établis et si vous ne trouvez pas la solution à votre problème, lisez les tuto de SQL comme celui ci :
    http://sqlpro.developpez.com/cours/sqlaz/select/#L3

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Novembre 2006
    Messages : 44
    Par défaut
    Merci,

    de plus je venais de trouver la solution, mais tout bon conseil est bon à prendre.

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

Discussions similaires

  1. Requête sql challenge
    Par voxov dans le forum Langage SQL
    Réponses: 14
    Dernier message: 22/10/2013, 02h25
  2. Requete SQL challenge 3
    Par voxov dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 15/10/2013, 19h47
  3. Requête sql challenge 2
    Par voxov dans le forum Langage SQL
    Réponses: 9
    Dernier message: 09/10/2013, 14h41
  4. Challenge SQL Oracle
    Par alex_972 dans le forum SQL
    Réponses: 9
    Dernier message: 05/10/2011, 13h26
  5. Mini-challenge SQL n°1
    Par FMJ dans le forum Développement
    Réponses: 5
    Dernier message: 19/11/2009, 11h46

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