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

 


Dernière réponse
Sujet : [SQL] J'en appelle aux Dieux du SQL (et aux déesses ;o)
xaero Well, j'ai réussi à faire la jointure entre Emp et Tel et stocker les results dans une table Tmp   :sol:
   Je pense que maintenant je vais supprimer de la table EMPLOYES les personnes que je trouve dans cette table. Puis je réinsère ces enregistrements. Si quelqu'un a plus simple, please share !
 
   Mais non, je ne suis pas Aware !  :lol:
 
   Merci encore a ceux qui m'ont aidé ! :hello:  Pour les autres :na:  :lol: :lol: :lol:

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
xaero Well, j'ai réussi à faire la jointure entre Emp et Tel et stocker les results dans une table Tmp   :sol:
   Je pense que maintenant je vais supprimer de la table EMPLOYES les personnes que je trouve dans cette table. Puis je réinsère ces enregistrements. Si quelqu'un a plus simple, please share !
 
   Mais non, je ne suis pas Aware !  :lol:
 
   Merci encore a ceux qui m'ont aidé ! :hello:  Pour les autres :na:  :lol: :lol: :lol:
xaero J'ai peur de pas tout saisir dans ta soluce. Pour commencer je n'utilise pas de script, étant sous Access. Mais on peut toujours faire des macros qui appellent les requetes.  
   Bon, si j'ai bien compris, on va créer une table temporaire en effectuant la jointure entre emp et tel, puis on delete la table emp pour garder la temporaire. That's it ? or not ?
irulan xaero > nan nan ce que je veux dire c'est dans ton script créer une table temporaire (du genre TMP_EMPLOYES) que tu remets à zéro à chaque exécution, qui sera la copie de ta table EMPLOYES, à ceci près que dans le script d'alimentation (qui sera donc en insert) tu pourras utiliser une jointure.
 
D'ailleurs ça se rapproche de ce que proposait Fred999.

 

[edtdd]--Message édité par irulan--[/edtdd]

xaero Tu veux dire créer une vue ?  :sarcastic:
L'opérateur INSERT demande le INTO sous ACCESS. Et ca équivaut à insérer des tuples, pas à les mettre à jour. Resultat : tout les numéros de tél sont au début de la table et ensuite on trouve les enregistrements (employes). Pas Top, hein  ? :fou:
   Si la solution est de créer une vue (car une vue sert entre autre à stocker des resultats temporaires) je vais essayer.
irulan Fred999>   :hello: Tiens pendant que tu es là à proposer des trucs qui ne marchent pas ;) tu n'aurais pas une idée pour mon truc de PB, par hasard ?
 
Xaero > Dans ce cas on ne peut pas, et je ne connais aucun moyen de contournement. A part créer une table temporaire (car dans un insert tu peux effectuer un jointure) et la copier dans ta table définitive.

 

[edtdd]--Message édité par irulan--[/edtdd]

xaero MAIS ALORS, COMMENT FAIRE POUR MON PB ?????   :pt1cable:
Je veux bien croire que cette syntaxe marche pas mais il y a bien une alternative ? Il y toujours une alternative en principe... une porte de sortie quoi ! :cry:
Fred999 Bon, alors on va faire les choses comme un goret :  

Code :
  1. insert  EMPLOYES (ID, telephone)
  2. select  tele.ID,
  3.         tele.telephone
  4. from
  5.         TELEPHONE    tele
  6. where
  7.         tele.ID not in (select ID from EMPLOYES)


 
Et != est reconnu sous SQL Server.
 
Et je vous emmerde [:fred999]  
 
Irulan > :hello:

irulan Euh, je précise : je parlais de la jointure dans l'update, pas de l'opérateur '!=', qui est reconnu parfaitement sous Oracle.

 

[edtdd]--Message édité par irulan--[/edtdd]

seblamb

Fred999 a écrit a écrit :

Alorseuh :o ma syuntaxe marcherait trèèès bien sous SQL Server, j'ai pioché dans mes procs stockées.
 
Fallait pas utiliser Access :D  




 
Aucun rapport avec Access, l'opérateur différent dans la norme SQL c'est '<>'.  :na:

irulan Ce n'est pas Access qui est en cause, sous Oracle la syntaxe n'est pas valable non plus : j'ai déjà eu ce problème et il est impossible d'utiliser une jointure pour effectuer un update  :sarcastic:
Fred999 Alorseuh :o ma syuntaxe marcherait trèèès bien sous SQL Server, j'ai pioché dans mes procs stockées.
 
Fallait pas utiliser Access :D
xaero Je veux dire : cette opération de MAJ à partir d'une colonne d'une autre table ?
xaero Ouais, Seblamb a raison sur ce point. Mais j'ai besoin seulement de la première requete. La syntaxe SQL est :
   UPDATE table
   SET newvalue
   WHERE criteria;
 
   Pas de trace du FROM, car cette requete sert à la MAJ d'un champ selon un critère (ex : hausse de 10%). Et non pas à partir d'un autre champ.
   Si j'enlève la ligne du FROM il prend les empl.telephone et empl.id comme paramètre et je dois rentrer une valeur.
Cette opération est elle possible sous ACCESS :??:
seblamb

Fred999 a écrit a écrit :

Code :
  1. where
  2.         tele.ID  != empl.ID


 




Déja ça m'étonnerais que ça marche en SQL, en C peut être  :D , mais en SQL il vaut mieux mettre  
 
[code]where
        tele.ID  <> empl.ID[\code]

xaero Merci !
J'ai essayé et :  
  Je suis sous access, d'où (peut être) l'erreur suivante :  
"Erreur de syntaxe (opérateur absent)" :fou: C'est au niveau du FROM que ça coince. Aie aie aie, t'as une idée ? Ou quelqu'un d'autre hein ! Sans le FROM ca marche pas evidemment.  
 
  Bon, je vais manger, on en reparle après  ;)
Fred999

Code :
  1. Mise à jour pour les employés de TELEPHONE déjà présents dans EMPLOYES :
  2. update  EMPLOYES
  3. set     empl.telephone = tele.telephone
  4. from
  5.         EMPLOYES   empl,
  6.         TELEPHONE  tele
  7. where
  8.         tele.ID    = empl.ID
  9. Insertion pour les employés de TELEPHONE non présents dans EMPLOYES :
  10. insert  EMPLOYES (ID, telephone)
  11. select  tele.ID,
  12.         tele.telephone
  13. from
  14.         TELEPHONE    tele,
  15.         EMPLOYES     empl
  16. where
  17.         tele.ID      != empl.ID


 
:hello:

 

[edtdd]--Message édité par Fred999--[/edtdd]

xaero Hello World ! :hello:
   Voila le pb. J'ai une table du personnel contenant diverses infos (table EMPLOYES). Dont une colonne pour le téléphone. Ce numéro figure dans une autre table (table TELEPHONE). J'aimerais insérer le numéro de téléphone dans la table EMPLOYES à la personne correspondante bien-sûr. Champ ID pour jointure.  
   Quelle serait la syntaxe SQL sachant que :
     - Update : c'est pour maj avec même valeur
     - Insert Into : Création de nouveaux tuples
 
   Je pense que c'est simple mais g pô trouvé :sweat: Je me remets doucement dans le SQL en fait.  
   Ne me laissez pas tomber !!  :cry:
   Merci à tous !!

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)