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

Requêtes et SQL. Discussion :

Compiler les requêtes


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chargé de mission recherche
    Inscrit en
    Avril 2019
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de mission recherche
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2019
    Messages : 20
    Points : 13
    Points
    13
    Par défaut Compiler les requêtes
    Bonjour,

    Je cherche désespérément à créer une requête qui compile les résultats de plusieurs requêtes avec une colonne par résultat et sans doublons comme ceci :

    r1Patho r4OMS r3NatureRCP
    121465 654789 132145
    654789 321456 321486
    321489 335654 312324

    Chaque requête est construite de la même manière, pour me donner une liste sans doublons. Exemple avec la Requête 1 (r1Patho) :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT DISTINCT TablePassagesBoulogne.ID_RCP
    FROM TablePassagesBoulogne
    GROUP BY TablePassagesBoulogne.ID_RCP, TablePassagesBoulogne.Patho_RCP, [Formulaires]![f_Search_V4]![cboListePathologie]
    HAVING (((TablePassagesBoulogne.Patho_RCP) Like [Formulaires]![f_Search_V4]![cboListePathologie])) OR ((([Formulaires]![f_Search_V4]![cboListePathologie]) Is Null));

    Cela fonctionne pour chaque requête individuelle mais quand je fais un SELECT sur toutes mes requêtes (voir ci-dessous) seule UNE est sans doublon

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT r1Patho.ID_RCP, r4OMS.FIC_ID, r3NatureRCP.FIC_ID
    FROM r1Patho, r4OMS, r3NatureRCP
    GROUP BY r1Patho.ID_RCP, r4OMS.FIC_ID, r3NatureRCP.FIC_ID;
    Résultat :


    r1Patho r4OMS r3NatureRCP
    121465 654789 132145
    654789 654789 132145
    321489 654789 132145

    Comment résoudre ça ?

    Merci

    Quentin

  2. #2
    Invité
    Invité(e)
    Par défaut
    bonsoir, à tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT r1Patho.ID_RCP, r4OMS.FIC_ID, r3NatureRCP.FIC_ID
    FROM r1Patho, r3NatureRCP, r4OMS
    WHERE r1Patho.ID_RCP Not In ([r3naturercp].[fic_id],[r4oms].[fic_id]) AND r4OMS.FIC_ID Not In ([r1patho].[id_rcp],[r3naturercp].[fic_id]) AND r3NatureRCP.FIC_ID Not In ([r1patho].[id_rcp],[r4oms].[FIC_ID])
    ORDER BY r1Patho.ID_RCP, r4OMS.FIC_ID, r3NatureRCP.FIC_ID

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chargé de mission recherche
    Inscrit en
    Avril 2019
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de mission recherche
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2019
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    Merci !

    J'imagine que je n'aurais jamais la réponse de si ça marche ou non

    Nom : 1.PNG
Affichages : 112
Taille : 7,1 Ko

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Le problème est que
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT r1Patho.ID_RCP, r4OMS.FIC_ID, r3NatureRCP.FIC_ID
    FROM r1Patho, r3NatureRCP, r4OMS
    est un produit croisé ce qui est particulièrement gourmand en espace. Si tu as 10 enregistrements dans chacune des tables, cela te donne 10 x 10 x 10 = 1000 enregistrements. Et comme c'est une multiplication, ça grimpe vite.

    Comme tu utilises Not In, tu pourrais sans doute faire une jointure à la place avec un test du type IsNull([TableJointe].[ChampJoint]).

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. Accents non pris en compte dans les requêtes SELECT
    Par YanK dans le forum Requêtes
    Réponses: 1
    Dernier message: 30/08/2005, 10h57
  2. Réponses: 5
    Dernier message: 16/08/2005, 12h15
  3. [Tomcat]comment compiler les servlets sous eclipse et tomcat
    Par boussaad dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 31/03/2005, 15h29
  4. Réponses: 44
    Dernier message: 14/03/2005, 09h43
  5. Optimisations mysql sur les requêtes SELECT: index
    Par leo'z dans le forum Débuter
    Réponses: 2
    Dernier message: 29/11/2003, 13h23

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