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

Développement SQL Server Discussion :

Problème pour récupérer les infos de l'enregistrement le plus récent !


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 13
    Par défaut Problème pour récupérer les infos de l'enregistrement le plus récent !
    Bonjour tout le monde,

    Voici le MCD :



    Voilà j'ai un gros problème, je n'arrive pas à récupérer la dernière formation effectuée pour chaque salarié. J'ai essayé avec la requête suivante mais rien n'y fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT Perso.Nr_personnel,Perso.Nom,Perso.Prenom,Part.Nr_formation,Form.Debut_cours
    FROM personnel AS Perso
    INNER JOIN participant AS Part
    USING (Nr_personnel)
    LEFT JOIN formation AS Form
    ON Form.Nr_formation=Part.Nr_formation
    AND Form.Debut_cours = (SELECT MAX(Debut_cours)
                                        FROM formation Form2
                                        WHERE Form2.Nr_formation = Part.Nr_formation)
    Le problème c'est qu'il m'affiche les formations effectuées pour chaque salarié !

    Par avance Merci !

    Cordialement,

    Djskynet

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Par défaut
    sur sql serveur 2005, vous pouvez utiliser les fonctions de classements et de fenetrage.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 13
    Par défaut
    Bonjour,

    je n'es pas très bien saisie votre réponse, le problème c'est que je n'arrive pas à trouver la requête adéquate pour récupérer la dernière formation de chaque membre du personnel que j'affiche dans un tableau !

    Par avance Merci,

    Cordialement,

    Djskynet

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 13
    Par défaut
    Merci pour le lien, j'ai essayer de comprendre l'article et le tuto, j'ai même regarder des liens sur le net sur ces fonctions mais j'avoue que j'ai du mal à comprendre le fonctionnement de celles-ci. Es ce qu'il serait possible qu'on m'explique ! ou es ce qu'il existe un tutoriel plus simple à comprendre.

    Par avance Merci ,

    Cordialement,

    Djskynet

  6. #6
    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
    Inutile d'utiliser les fonction de ranking. Une bonne idée serait d'utiliser une vue ou une CTE afin de simplifier votre requête par factorisation...

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    WITH T_PERSONNEL_FORME
    AS (SELECT P.*, Effectuee, F.*
        FROM   personnel AS P
               INNER JOIN participant AS PP
                     ON P.Nr_personnel = PP.Nr_personnel
               INNER JOIN formation AS F
                     ON PP.Nr_formation = F.Nr_formation)
    SELECT Nr_personnel, Nom, Prenom, Nr_formation, Debut_cours
    FROM   T_PERSONNEL_FORME Pout
    WHERE  Debut_cours = (SELECT MAX(Debut_cours)
                          FROM   T_PERSONNEL_FORME AS Pin
                          WHERE  Pin.Nr_Personnel = Pout.Nr_Personnel)
    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/ * * * * *

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 04/09/2006, 17h59
  2. Réponses: 12
    Dernier message: 25/06/2006, 23h24
  3. Réponses: 1
    Dernier message: 07/06/2006, 18h56
  4. Réponses: 3
    Dernier message: 15/05/2006, 18h05
  5. Réponses: 10
    Dernier message: 16/11/2005, 08h33

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