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 :

Requetes corrélatives ??


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 71
    Points : 26
    Points
    26
    Par défaut Requetes corrélatives ??
    Hello Hello

    Voila j'ai une requetes a faire via asp sur une table en access mais je bloque la !!!

    voici le schéma de mes tables :



    La tables croisée contient l id de la fonction ( ex : directeur ) avec l'id de la formation obligatoire pour ce poste ( ex : gestion interne ).
    Cette table n'ets plus modifié par apres.

    la table encodage contient l'id matricule d'une personne, l'id de la formation effectué et la date de la formation .

    J'aimerais obtenir la liste des personnes qui n'ont pas encore effectué une des formations dont il ont l'obligation d'effectué......donc une formation dont l'id est dans la table croisée mais pas encore dans la table encodage ..


    vous comprenez

    merci de votre aide

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Est-ce qu'il ne manque pas un lien entre tblPers et tblFonction ?
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Etant donné ce que tu demandes tu ne devrais pas avoir un lien entre IDMatricule et IDFonction ?
    Sinon comment tu obtiens la liste des formations auxquelles est supposée participer une personne ?[/code]

    Grillé
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 71
    Points : 26
    Points
    26
    Par défaut
    Si en fait " Fonction" de la table Fonction et fonction principale de la tablePers" sont liés...oublié de l'ajouter

  5. #5
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Bonjour,

    D'accord avec Médiat.
    Ton schema permet de voir quels sont les fonctions 'accessibles' par 1 personne, mais pas les formations manquantes par rapport à sa fonction.
    (sauf à utiliser 1 parametre extérieur ds ta rq)

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 71
    Points : 26
    Points
    26
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT tblPers.IDMatricule, tblPers.NOM, tblPers.Prénom, tblPers.Departement, tblEncodage.IDFormation, tblEncodage.Date, tblFormation.Formation FROM tblFormation INNER JOIN (tblPers INNER JOIN tblEncodage ON tblPers.IDMatricule = tblEncodage.IDMatricule) ON tblFormation.IDFormation = tblEncodage.IDFormation WHERE [Formation] LIKE '" &Fonctionselect & "'"
    Pour obtenir la liste des personnes pour une fonction choisi......

  7. #7
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Essaye (SQL Normé) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT p.IdMatricule, p.Nom, c.IdFormation, c.Formation
    FROM tblCroisée c INNER JOIN      tblPers     p ON c.IdFonction  = p.IdFonction
                      LEFT OUTER JOIN tblEncodage e ON p.IdMatricule = e.IdMatricule 
                                                   AND c.IdFormation = e.IdFormation
    WHERE e.Date IS NULL
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  8. #8
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Citation Envoyé par hysteresis
    Si en fait " Fonction" de la table Fonction et fonction principale de la tablePers" sont liés...oublié de l'ajouter
    Donc tu as une table qui effectue la jointure ?
    Quelle est(sont) la(les) clé(s) primaire(s) ?

    Pour l'instant je te propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT PERS.*
    FROM   TBLPERSONNE AS PERS
           INNER JOIN TBLCROISEE AS CROIS
                   ON (CROIS.IDFONCTION = PERS.IDFONCTION)
           INNER JOIN TBLX
                   ON (TBLX ....  = TBLPERSONNE ... )
    WHERE   NOT  EXISTS (SELECT *
                         FROM   TBLENCODAGE AS ENC
                         WHERE  ENC.IDMATRICULE = PERS.IDMATRICULE
                                AND ENC.IDFORMATION = CROIS.IDFORMATION)
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  9. #9
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Supprimé à cause de la précision du post suivant
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 71
    Points : 26
    Points
    26
    Par défaut
    Enfait j'ai rajouté IDFonction dans la table Pers qui permet de faire le liens entre elle et la table croisé...

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 71
    Points : 26
    Points
    26
    Par défaut
    Et bien un grand MERCI a vous tous pour votre aide , magnus ta requete marche parfaitement, puissant la fonction exists

    Encore merci et a bientot

  12. #12
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Enfin j'imagine que tu as dû l'adapter car j'utilisais trop de tables dans les jointures apparemment.

    Quoi qu'il en soit, tu peux afficher ta requête dans ton dernier post si elle est sensiblement différente de la mienne.

    Pense à marquer le sujet résolu.
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 71
    Points : 26
    Points
    26
    Par défaut
    Voila ma requetes finale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    "SELECT PERS.NOM, PERS.Prénom, PERS.Departement, PERS.Fonction_principale 
    FROM (tblcroisée AS CROIS INNER JOIN tblPers AS PERS ON CROIS.IDFonction = PERS.IDFonction) 
    INNER JOIN tblFormation ON CROIS.IDFormation = tblFormation.IDFormation 
    WHERE (((Exists (SELECT *  FROM   TBLENCODAGE AS ENC WHERE  ENC.IDMATRICULE = PERS.IDMATRICULE  AND ENC.IDFORMATION = CROIS.IDFORMATION))=False) AND ((tblFormation.Formation)LIKE '" &Fonctionselect & "'))"
    Oui je l'ai un peu adapter mais now ca marche tres bien...

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

Discussions similaires

  1. [WebI Xi3] Requete corrélée sous WEBI.
    Par jwelcome dans le forum Débuter
    Réponses: 2
    Dernier message: 30/10/2012, 11h29
  2. Requete corrélée ou simple sous-requête
    Par totoche dans le forum SQL
    Réponses: 3
    Dernier message: 06/03/2010, 23h35
  3. requete avec OBCD et visual c++
    Par Anonymous dans le forum MFC
    Réponses: 12
    Dernier message: 18/11/2004, 16h15
  4. Requete requête sous sybase
    Par eddie dans le forum Sybase
    Réponses: 3
    Dernier message: 02/04/2003, 14h51
  5. [Kylix] Requetes Kylix pour postgres
    Par Miltown dans le forum EDI
    Réponses: 1
    Dernier message: 29/05/2002, 20h22

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