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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Alimentation du Champ d'une table !!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Alimentation du Champ d'une table !!

n°2084283
ibson
Posté le 23-06-2011 à 15:51:05  profilanswer
 

Bonjour,  
Je travaille sur des requêtes SQL   plus précisément sur l’alimentation  de table  et  J’ai un petit souci.
En fait j’ai 3 tables  A ,B ,C  
La table  A :  id , ft  ( 2 , ? )
La table  B : id , lib , t1 , t2  ( 55, école , 0,7 , 0,8 )
La table C : aid , t1 , t2 , tr ( 2 , 0,7 , 0,8, 3 )
 
Le but est d’alimenter le  champ ft  de la table A    à partir des infos de la table B sachant  que le champ tr de la table C doit être égale à 3.
J’aimerais savoir quels sont  les requêtes pour alimenter  ft  dans la table A  (sur  ft on doit récupérer le champ id  de  la Table B ) ?

mood
Publicité
Posté le 23-06-2011 à 15:51:05  profilanswer
 

n°2084493
ibson
Posté le 24-06-2011 à 10:54:06  profilanswer
 

bonjour , je reviens vers vous pour solliciter votre aide  parceque je suis vraiment bloqué  sur le sujet   !!!
Merci

n°2084552
Oliiii
Posté le 24-06-2011 à 13:25:13  profilanswer
 

Est-ce que tu pourrais donner la strucutre de tes tables? (type de champs et qui est clé étrangere de qui)
Ca aidera a comprendre un peu mieux ce qui se passe.

n°2085434
ibson
Posté le 28-06-2011 à 10:50:43  profilanswer
 

Oui  bien !  Voici la structure des tables :  
 
Table A :       id   float  NUMERIC (5) clé étrangère de la Table  C  
        ft      NUMERIC (5) clé étrangère de la Table B  
       
La table B:   id   float    
        Lib String  
         t1 float  NUMERIC (3)  clé étrangère de la Table C
         t2 float NUMERIC (3)   clé étrangère de la Table B
 
La table  C :    aid  float  NUMERIC (5)  
          t1  float NUMERIC (3 )
          t2  float  NUMERIC (3)
          tr   float   NUMERIC (5)

n°2085678
Oliiii
Posté le 29-06-2011 à 09:14:14  profilanswer
 

Quel boxon dans le nom de tes colonnes :)
Va faloir renomer tout ca pour avoir quelque chose d'un peu plus lisible.
 
Si j'ai tout bien compris ca devrai fonctionner avec ca:

Code :
  1. UPDATE TableA
  2.     SET ft = b.id
  3. FROM TableA a
  4.     JOIN TableC c ON c.aid = a.id
  5.     JOIN TableB b ON b.t1 = c.t1 AND b.t2 = c.t2 AND c.tr = 3

n°2085740
ibson
Posté le 29-06-2011 à 11:00:34  profilanswer
 

Merci Oliii je vais tester pour voir si sa fonctionne .

n°2086459
ibson
Posté le 01-07-2011 à 12:06:19  profilanswer
 

Bonjour, tout d’abords  merci pour ton aide l’Update marche bien.  
Cependant j’ai un autre souci  il y a une autre condition qui s’est rajouté.
En effet  b.t1 = c.t1 n’est possible que si  c.o =1  et b.t2 = c.t2 que si c.o = 2.
Du  coup en me basant sur le script j’ai refais deux script deux select qui me renvoi bien les valeurs souhaités.
1 / SELECT
    v1.id,
    formuleTypeId
    FROM TableA a
        JOIN TableC c ON c.aid = a.id
        JOIN TableB b ON b.t1 = c.t1 AND c.o=1 AND c.tr = 3
2/ SELECT
    v1.id,
    formuleTypeId  
   FROM TableA a
        JOIN TableC c ON c.aid = a.id
        JOIN TableB b ON b.t2 = c.t2 AND c.o=2 AND c.tr = 3
 
Je voulais savoir comment faire une jointure de mes deux scripts de select  ou si je pouvais le mettre sur un seul script ??    

n°2086507
Oliiii
Posté le 01-07-2011 à 16:25:31  profilanswer
 

A vue de nez ca donnerai quelque chose comme ca (fait en vitesse sans verification, donc a prendre avec des pincettes):

Code :
  1. SELECT
  2.    v1.id,
  3.    formuleTypeId
  4.    FROM TableA a
  5.        JOIN TableC c ON c.aid = a.id
  6.        JOIN TableB b ON c.tr = 3 AND ((b.t1 = c.t1 AND c.o=1) OR (b.t2 = c.t2 AND c.o=2))


Message édité par Oliiii le 01-07-2011 à 16:26:24
n°2087267
ibson
Posté le 05-07-2011 à 16:45:51  profilanswer
 

Bonjour Oliiii  
 Sa marche sauf que sa me ramène pas le résultat attendue !  
Et je pense que je n’ai pas du le préciser au début, en effet   en lançant la requête  
1. SELECT
2.     a.id, b.t1, b.t2
3.     formuleTypeId
4.     FROM TableA a
5.         JOIN TableC c ON c.aid = a.id
6.         JOIN TableB b ON c.tr = 3 AND ((b.t1 = c.t1 AND c.o=1) OR (b.t2 = c.t2 AND c.o=2))  
Je me rends compte qu’il me renvoi pas que les couples t1, t2 que je veux.
Pour être plus clair dans ma table B on le couple t1 t2 correspond a un libellé A avec un id 2.
Si t1=5, t2 =4, Lib = A, id = 3, en faisant la requête ci-dessus je dois récupérer le même couple .  

n°2087268
ibson
Posté le 05-07-2011 à 16:48:02  profilanswer
 

Je me prend un peu la tête avec  mon souci  et je suis ptr pas trop clair mais je suis débutant en SQL .  Merci de votre aide

mood
Publicité
Posté le 05-07-2011 à 16:48:02  profilanswer
 

n°2087275
ibson
Posté le 05-07-2011 à 17:04:21  profilanswer
 

Pour infos les deux requêtes d'avant  me donnent les bon résultats  :  
 
1 / SELECT
    v1.id,
    formuleTypeId
    FROM TableA a
        JOIN TableC c ON c.aid = a.id
        JOIN TableB b ON b.t1 = c.t1 AND c.o=1 AND c.tr = 3
2/ SELECT
    v1.id,
    formuleTypeId  
   FROM TableA a
        JOIN TableC c ON c.aid = a.id
        JOIN TableB b ON b.t2 = c.t2 AND c.o=2 AND c.tr = 3  
 
Je pense faut juste que je trouve un moyen de pouvoir faire une jointure des deux qui pourra me renvoyer les bons résultats ( avec les bonnes couples ) .

n°2087903
ibson
Posté le 07-07-2011 à 15:00:42  profilanswer
 

Bonjour   quelqu'un pourrez m'aider  sur le sujet svp ?


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

  Alimentation du Champ d'une table !!

 

Sujets relatifs
bouton "effacer" tous les champs d'un table[Excel+VBA] autofilter avec "format as table"
Ajout champ texte sur un formulaire[Résolu] [Oracle] Concatener champ date et champ time pour filtrer
SQL : concaténer champ et enlever espace UPDATESélectionnés tous ceux qui ne sont pas dans la table
[MySQL] Copier une table distantevalider un champ php avec la function OnkeyUp
Order by sur un champ taille avec des KB, MB, etcextraire un champ dans un paquet RTP
Plus de sujets relatifs à : Alimentation du Champ d'une table !!


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