Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1365 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Résolu] Requête complexe sur table ayant 4 champs clé primaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Requête complexe sur table ayant 4 champs clé primaire

n°1337541
Manu la Sc​ience
...la science ... pas toujours
Posté le 03-04-2006 à 08:36:18  profilanswer
 

Bonjour à tous,
 
Je travaille sur une base de données SQL SERVER 2000 qui a une interface Access de consultation et de remplissage. Il y a pas mal de données et certaines évoluent.
 
J'ai une table que l'on pourrait décrire comme table liaison qui à 4 champs qui forment la clé primaire. Parmi ces 4 champs, trois sont des clés étrangères.
 
Voici la structure de ma table :
ID_table1
ID_table2
ID_table3
etat
valeur1
valeur2
valeur3
 
ID_table1, ID_table2 et ID_table3 sont les clés issues d'autres tables. etat est un etat associé au trois clés étrangères pour former la "clé" complexe de la table.
 
Les données changeant, je dois faire un changement dans les données de cette table. L'ID_table2 ne sera plus le même et des données de la table ayant les mêmes ID_table1, ID_table3 et état vont être rapprochées et obtenir un nouvel ID_table2 (données qui changent) ainsi que l'inverse, des données ayant un ID_table1, un ID_table3 et un état similaire vont être scindées (duplication conditionnelle) en deux ou trois.
 
Dans le champ valeur1 est stockée une info importante (les infos stockées sont : "pas d'information", "faible", "moyenne", "forte" ) et celle conditionne la duplication et l'agglomération des données. En effet, si mon association de clés étrangères (donnant la clé primaire) a pour valeur1 "pas d'information" et qu'un autre enregistrement devant migrer vers la même association de clés étrangères mais ayant une info pertinente, je veux garder l'info pertinente.
 
Je dois donc faire des requêtes alambiquées...
 
Je voudrais donc faire une requête avec une requête imbriquée sur les 4 champs clé (je travaille sur Access pour préparer mes requêtes sélection, ajout et suppression)
 
Voici ma requête "primaire" :
SELECT ID_table1, ID_table2, ID_table3, etat, valeur1 (et les autres champs) FROM ma_table;
 
Ma requête que je souhaite imbriquer :
SELECT ID_table1, ID_table2, ID_table3, etat, valeur1 FROM ma_table WHERE ((ID_table2=250) AND (valeur1<>197));
 
Et j'amerai pouvoir imbriquer la deuxième requête afin de prendre les infos prioritaires par rapport aux autres (je m'explique...). Je sélectionne dans la table seulement les données pas déjà sélectionnées. Je souhaite utiliser un NOT IN et faire un "truc" (enfin une requête) du genre :
SELECT ID_table1, ID_table2, ID_table3, etat, valeur1 (et les autres champs) FROM ma_table WHERE ((ID_table1, ID_table2, ID_table3, etat) NOT IN (SELECT ID_table1, ID_table2, ID_table3, etat, valeur1 FROM ma_table WHERE ((ID_table2=250) AND (valeur1<>197));))
 
Il faut que cela se fasse sur l'association des clés et je ne sais pas si cela est possible...
 
Merci de votre aide.


Message édité par Manu la Science le 03-04-2006 à 14:47:51

---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
mood
Publicité
Posté le 03-04-2006 à 08:36:18  profilanswer
 

n°1337706
Manu la Sc​ience
...la science ... pas toujours
Posté le 03-04-2006 à 13:01:22  profilanswer
 

Si jamais ma question est incompréhensible, faites le moi savoir...
 
Peut-on faire une requête imbriquée sur plusieurs champs servant de clé primaire ?


Message édité par Manu la Science le 03-04-2006 à 13:06:36

---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1337740
Manu la Sc​ience
...la science ... pas toujours
Posté le 03-04-2006 à 14:09:47  profilanswer
 

La requête que je souhaite faire est une requête minus mais sur une table ayant 4 champs clé primaire. Access n'aime pas "minus" et le NOT IN ne lui plait pas trop d'après ce que je fais.


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1337781
Manu la Sc​ience
...la science ... pas toujours
Posté le 03-04-2006 à 14:47:28  profilanswer
 

Après maints essais et des cheveux en moins, j'ai trouvé la solution (ouf).
 
Si des personnes sont intéressées, je laisserai la solution trouvée (enfin, la solution mieux expliqué que ce qui suit).
 
Je fais une simple requête sélection sur mes deux requêtes (issues de la même table, mais l'une donnant des infos et l'autre donnant des non-infos). Dans ma requête, je lie les clés de ma requête non-infos vers celles de ma requête infos, j'affiche les champs clés de ma requête non-infos et je sélectionne les champs clés de ma requête infos qui sont nuls.
 
J'obtiens alors les éléments qui sont seulement dans la table pas d'infos.


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Résolu] Requête complexe sur table ayant 4 champs clé primaire

 

Sujets relatifs
RESOLU - Diviser le contenu d'une cellule pour alimenter une combobox[resolu]updater une valeur seulement si superieure
[resolu] Tri dans un tableau multidimensionnelGeolocalisation et requête assez complèxe
[Resolu] Boites de contenu et includestous les emplacements possibles pour une requete imbriquée?
[résolu] .htaccess et phperreur avec pl/sql , requete dynamique
Requete MySQL avec des variables ? 
Plus de sujets relatifs à : [Résolu] Requête complexe sur table ayant 4 champs clé primaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR