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 :

Une requête qui me donne du fil à retordre !


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Mars 2014
    Messages : 53
    Points : 54
    Points
    54
    Par défaut Une requête qui me donne du fil à retordre !
    Salutations voyageurs !

    J'ai une petite requête à faire sous Sql Server 2008, je vous présente mon MCD

    Nom : v5.1 - Copie.png
Affichages : 69
Taille : 14,1 Ko

    Comme vous pouvez le constater, j'ai supprimé une table :p

    J'ai besoin dans mon application, de sélectionner tout les employés ayant réalisé une formation, pour une formation récupérée :

    En étapes :
    1) Je récupère dans mon application un "id_session", celui-ci est relié à un "id_formation"
    2) Je récupère mon "id_formation"
    3) Je sélectionne tous les "id_session" qui ont le même "id_formation" que celui récupéré
    4) Je sélectionne tous les "id_personne" de ma table participe, associé à l'un de mes "id_session" ayant la propriété "valide" = 1 ainsi que la propriété "Actif" = 1
    5) Je sélectionne les noms, prénoms, id de ces personnes depuis la table personnes, si et seulement si la propriété "actif_personne" = 1

    Anciennement, grâce à un membre du Chat, j'ai pu avoir cette requête :

    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 id_personne,
           nom_personne,
           prenom_personne,
           actif_personne,
           agence_personne
    FROM Personnes
    WHERE (NOT EXISTS
             (SELECT 1 AS Expr1
              FROM Est_Forme
              WHERE (id_personne = Personnes.id_personne)
                AND (id_formation =
                       (SELECT id_formation
                        FROM Sessions
                        WHERE (id_session = @id_session)))))
    Je dois désormais mettre à jour ma requête, ayant supprimé ma table est_forme, mais je n'y arrive pas :/
    Je suis de nature à me compliquer la vie et je part directement dans des solutions à rallonge :p

    Votre aide me sera précieuse !

    Merci d'avance,

    Krishnak.

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Plus ou moins quelque chose comme ça :
    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
    17
    18
    19
    20
    21
     
    SELECT 
    		id_personne,
           nom_personne,
           prenom_personne,
           actif_personne,
           agence_personne	 
    FROM Sessions S1
    INNER JOIN Formation F
    	ON	F.idFormation = S1.idformation
    INNER JOIN Session S2
    	ON	S2.idFormation = F.idFormation
    INNER JOIN Participe P
    	ON P.idSession = S2.idSession
    INNER JOIN Personne Pers
    	ON Pers.id_personne = P.id_personne
    WHERE
    		S1.idSession = @IDSession
    AND		???.Valide = 1
    AND		Pers.actif_personne = 1
    AND		S2.actif_session = 1

    Mais j'ignore de quelle table sont censées venir certaines colonnes, comme pour la clause de validite...

    A adapter donc !

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Mars 2014
    Messages : 53
    Points : 54
    Points
    54
    Par défaut
    Effectivement, je ne l'ai pas rajouté mais valide vient de participe :p
    J'essaye ça !

    Bon après correction des noms des champs, ça fonctionne parfaitement, un grand merci !

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 22/04/2015, 09h06
  2. Une requête qui donne des doublons dans les résultats
    Par HDR_16 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/04/2014, 18h51
  3. Une requète qui ne donne pas le résultat attendu
    Par JeanNoel53 dans le forum Firebird
    Réponses: 1
    Dernier message: 17/12/2013, 10h23
  4. Une requête qui ne donne pas le résultat attendu
    Par JeanNoel53 dans le forum Visual C++
    Réponses: 4
    Dernier message: 30/10/2013, 11h35
  5. Réponses: 4
    Dernier message: 06/09/2013, 11h19

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