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

  FORUM HardWare.fr
  Programmation

  update imbriqué?? est ce possible

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

update imbriqué?? est ce possible

n°101511
grosmethos
Posté le 17-02-2002 à 18:55:07  profilanswer
 

Salut
 bon je voudrais mettre à jour une table, en fonction de données dans une autre table...
Je m'explique dans la table A j'ai un champ genre
Dans le table B j'ai aussi un champ genre
 
J'aimerais remplir le champ genre de B par un champ Z de A en fonction que A.genre=B.genre si cette condition est verifié je fais le remplacement!!
Est ce possible avec une requête SQL???

mood
Publicité
Posté le 17-02-2002 à 18:55:07  profilanswer
 

n°101552
Mara's dad
Yes I can !
Posté le 17-02-2002 à 20:49:47  profilanswer
 

Si c'est en MySql, il doit y'avoir moyen de le faire avec un REPLACE : http://www.mysql.com/doc/R/E/REPLACE.html


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°101679
grosmethos
Posté le 18-02-2002 à 09:17:19  profilanswer
 

c'est sql server!!

n°101795
grosmethos
Posté le 18-02-2002 à 12:53:25  profilanswer
 

up up up!! :bounce:

n°101880
irulan
Posté le 18-02-2002 à 15:29:29  profilanswer
 

Ca existe WHERE EXISTS sous SQL Server ? Parce que sous Oracle, j'essaierais avec ça mais ce n'est jamais évident les update de ce genre...
 
A mon avis, ce n'est pas gagné en une requête SQL simple, il faudra surement passer par une procédure...

n°101949
Mara's dad
Yes I can !
Posté le 18-02-2002 à 17:50:16  profilanswer
 

UPDATE B SET B.genre = A.z FROM B b1, A WHERE b1.genre=A.GENRE  ;)  
 
Voir : http://msdn.microsoft.com/library/ [...] z_82n9.asp


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°101965
grosmethos
Posté le 18-02-2002 à 18:15:52  profilanswer
 

bon je rentre chez moi et j'essaye
merci!!

n°102080
grosmethos
Posté le 18-02-2002 à 22:00:48  profilanswer
 

je comprend pas tout sur la requete de Mara's dad....
notament sur le b1, c'est quoi un alias??? ne faut il pas les definir avec le mot clés AS???
bref je vais considerer que c'est un alias...et vais essayer comme ça............
putain je suis pas couché encore.....!! :)

n°102173
chapi
Downgradé
Posté le 19-02-2002 à 10:09:14  profilanswer
 

Sous sql server le mot clé  
'as' n'est pas obligatoire, c'est donc bien un alias.
 
Pareil quand tu fais une jointure, tu mets JOIN et le INNER est sous-entendu...


---------------
I drive at 88mph ! Just in case...
n°102272
grosmethos
Posté le 19-02-2002 à 13:09:22  profilanswer
 

bon ok pour les alias je savais pô!!
Par contre j'ai essayé la requete precedente mais ça marche pas!!
D'ailleurs je suis surpris de voir un FROM avec un update!!!
 
Fin bref avant de passer sous sql server 7 je bosse sous access...
J'ai voulu tenté une procedure stockée mais à priori cela ne se fait pas avec Access ils appellent ça plutôt des macros ...comme je connais pas je laisse tomber...
Quoi qu'il en soit j'ai bien  une solution c'est de faire une petite fonction ASP qui me fasse un update...
Mais j'aurais aimé le faire avec plus de style :)


---------------
Ca marche pôa!!
mood
Publicité
Posté le 19-02-2002 à 13:09:22  profilanswer
 

n°102275
grosmethos
Posté le 19-02-2002 à 13:18:27  profilanswer
 

peut etre devrais je refourmuler ma requête :
J'ai une table A qui contient un champ genre avec du texte
j'ai une table B  qui contient aussi un champ genre avec la même chose que le genre dans A.
Par contre ma table A contient un id_genre, je voudrais donc transferer cette id_genre de B dans la table A à la place de de genre.
Mais bien sûr cet échange ne doit se faire que lorsque A.genre=B.genre....
 
table A     |     table B
 genre       |     id_genre    genre  
-----------  |     ------------------
banane       |      1          banane
avocat       |      2          avocat
cerise       |      3          cerise
 
Donc dans A je dois avoir apres modif :
table A
 genre
--------
 1
 2
 3
C'est surement possible avec du SQL non???  :(
ps cela ne gene pas d'avoir des chiffres dans un champ texte à la fin...


---------------
Ca marche pôa!!
n°102283
Mara's dad
Yes I can !
Posté le 19-02-2002 à 13:32:50  profilanswer
 

La requête que je t'ai donné fonctionne pour SQL server.
 
C'est ce que tu as écrit il me semble !
 
Pour la syntaxe, je t'ai donné le liens vers la doc MSDN.
 
Alors, c'est quoi le problème ?
Si c'est que çà marche pas sous Access, falait pas parler de SQL server !
 
Faudrait savoir de quoi on parle. Si tu as des messages d'erreurs, donne les...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°102286
grosmethos
Posté le 19-02-2002 à 13:43:02  profilanswer
 

ou lala on s'enerve pas!!
Oui j'ai SQL Server mais je bosse avec Access et quand tout sera fini cela sera transferé sur SQL server...
Mais cette requete je ne vais pas m'en servir dans mon prog, c'est juste pour deplacer des données.....
 
J'ai bien été voir le lien sur le MSDN que tu m'as donné, mais j'ai pas compris grand chose...
 
Quand aux messages d'erreur le From avec un update n'est pas accepeter!!


---------------
Ca marche pôa!!
n°102294
Mara's dad
Yes I can !
Posté le 19-02-2002 à 13:53:56  profilanswer
 

Donc on est bien d'accord : RIEN A VOIR AVEC SQL SERVER !
 
Version access (pour les tables avec cerise, banane et avocats ! ):
 
UPDATE B INNER JOIN A ON B.genre = A.genre SET A.genre = [B].[id_genre];


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°102436
grosmethos
Posté le 19-02-2002 à 17:28:16  profilanswer
 

bon ben comme hier je rentre et je test!!
Merci bien :)


---------------
Ca marche pôa!!
n°102473
grosmethos
Posté le 19-02-2002 à 18:45:36  profilanswer
 

bon aller je fais le lourd :)
mais ça marche toujours pas!!
voici ma requête (en fait c'est pas des bananes mais des motos..)
UPDATE moto INNER JOIN type_moto ON type_moto.genre = moto.genre SET moto.genre = [type_moto].[id_genre];
Bon j'ai compris la requête (c'est déja ça !)mais quand j'execute ma requête il me demande de lui donner une valeur de type_moto.genre (pour essayer je lui en ai donné une , tout se passe bien sauf qu'il fait rien :( )

n°102481
pudaipiai
Hummm, c'est quoi cette odeur?
Posté le 19-02-2002 à 19:07:39  profilanswer
 

grosmethos a écrit a écrit :

bon aller je fais le lourd :)
mais ça marche toujours pas!!
voici ma requête (en fait c'est pas des bananes mais des motos..)
UPDATE moto INNER JOIN type_moto ON type_moto.genre = moto.genre SET moto.genre = [type_moto].[id_genre];
Bon j'ai compris la requête (c'est déja ça !)mais quand j'execute ma requête il me demande de lui donner une valeur de type_moto.genre (pour essayer je lui en ai donné une , tout se passe bien sauf qu'il fait rien :( )  




 
il fallait faire :
UPDATE B INNER JOIN A ON B.genre = A.genre SET A.genre = [B].[id_genre];  
et tu as fait
UPDATE B INNER JOIN A ON B.genre = A.genre SET B.genre = [A].[id_genre];  
 
non ?

n°102504
Mara's dad
Yes I can !
Posté le 19-02-2002 à 21:06:10  profilanswer
 

Yep, je pense aussi que tu t'es trompé dans les champs !
 
Montres nous donc ENFIN la VRAI structure des tables !
 
Avec les bonnes infos (y s'rait temps) on va p't'être pouvoir faire quelque-chose  :lol:


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°102524
grosmethos
Posté le 19-02-2002 à 23:31:23  profilanswer
 

soyons fou !!
Moto        |     type_moto
genre       |     id_genre  id_marque   genre  
-----------  |     -----------------------------
GSXR         |     1          12         GSXR
CBR         |      2          24         CBR
VFR         |      3          46         VFR
 
Donc dans la tale Moto champ genre  
 je veux remplacer GSXR par 1
                   CBR  par 2
                   VFR  par 3
Voci exactement mes tables... :)

n°102644
Mara's dad
Yes I can !
Posté le 20-02-2002 à 11:39:40  profilanswer
 

Je ne comprends pas ton PB !
Chez moi, çà marche avec çà :
 
UPDATE moto INNER JOIN type_moto ON type_moto.genre = moto.genre SET moto.genre = [type_moto].[id_genre];  
 
ou çà :
 
UPDATE type_moto INNER JOIN moto ON type_moto.genre = moto.genre SET moto.genre = type_moto.id_genre;
 
Mon test ici : http://www.surleau.com/temp/bd1.mdb


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°102739
grosmethos
Posté le 20-02-2002 à 14:48:47  profilanswer
 

je te remercie pour ton lien!! trop cool!!
bon j'ai telechargé et j'ai regardé fait des tests...
alors avec ta base ça marche nickel chrome (c'est assez ennervant d'ailleurs) par contre avec la mienne, marche pô!! il me demande de lui rentrer un numéro type_moto.genre :(
Je vais regarder d'encore plus prés...mais c'est assez strange !


---------------
Ca marche pôa!!
n°102757
Mara's dad
Yes I can !
Posté le 20-02-2002 à 15:13:44  profilanswer
 

Cà doit-êtreun PB de type de donnée. Dans mon exemple, tous les champs sont de types texte.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°102839
grosmethos
Posté le 20-02-2002 à 17:28:09  profilanswer
 

ben non j'ai changé le id_genre de text en numeric et sa passe quand même trés bien.....
JE me demande si c'est aps une histoire de redondance comme j'ai plusieurs fois GSXR ou CBR peut etre...
je vais essayer avc un truc unique!!


---------------
Ca marche pôa!!
n°102841
grosmethos
Posté le 20-02-2002 à 17:30:53  profilanswer
 

bon quelque chose doit m'echapper!!
car il me semble que les conditions sont les memes donc que la requête devrait marcher aussi bien chez toi que chez moi....
mais non....
putain ça m'ennerve!!


---------------
Ca marche pôa!!
n°102844
grosmethos
Posté le 20-02-2002 à 17:42:58  profilanswer
 

en faisant le bourrin et en imprtant les tables sur t base access, bien j'ai le meme bleme , il y a donc quelque chose qui m'echappe!!


---------------
Ca marche pôa!!
n°102846
Mara's dad
Yes I can !
Posté le 20-02-2002 à 17:46:01  profilanswer
 

Si tu veux, je peux regarder, mais faut m'envoyer ta base !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°102869
grosmethos
Posté le 20-02-2002 à 18:26:29  profilanswer
 

MEA COULPA!!]  
 
Heureuement que j'ai t'ai pas envoyé ma base je pense que le FORUM entier t'aurais entendu hurler :bounce:
 
Tout ça pour dire que je viens de trouver ce qui deconnait et bien sûr c'etait moi!!
 
J'avais pas nommé genre dans type_moto, mais id_genre, et du coup il manquait une info!!
 
Je suis lourd, ça fait 30 fois que je le li et j'ai rien vu!! sauf maintenant!!
 
Bon en tout cas MERCI bien, je vais pouvoir coder mon ASP tranquille maintenant....
 
Pour ceux que ça interesse le site en question c'est wwww.labeloccasion.com si vous cherchez une moto, aller voir les quelques photos....
Le menu de recherche notamment sur le modèle devrait être plus clair ( le genre pour ceux qui ont participé au topic :)!!)
 
Les vendeurs pour inserer une moto genre 750 GSXR on saisi plusieurs dénomination pour le même type de machine :
750 GSXR, GSXR 750, GSXR, GSX 750 R etc etc....
donc je vais uniformiser le tout avec un menu déroulant qu'il pourront alimenter eux même....
Bon je devais rendre le  job mardi, j'espère finir ce soir!!
Merci encore une fois
@+


---------------
Ca marche pôa!!
n°110207
Kahyman
Posté le 10-03-2002 à 21:47:09  profilanswer
 

Mon dieu quel bidouillage...
 
En faisant ainsi si tu effaces une entree dans ta table A tu n'as aucun moyen de savoir si cette entree est utilisee ou non dans B ou toute autre table, impossible de faire un cascade ni rien... donc verifs a la main ou par triggers donc lenteur et integrite zero.
 
Tu devrais reprendre ta modelisation en utilisant des foreign keys, puis ensuite transferer les donnees d'une BDD a l'autre. J'espere que SQL Server en est capable, je n'utilise qu'Oracle et franchement je me comprends et me felicite :lol: ...
 
Comme quoi il faut modeliser ses BDD correctement AVANT et pas patcher APRES...  
 
Courrage !
 
;)

mood
Publicité
Posté le   profilanswer
 


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

  update imbriqué?? est ce possible

 

Sujets relatifs
Est-il possible de paramêtrer son naviguateur ..........?[SQL] J'ai un petit prob avec un Update ...
delphi en francais c possible ?[Flash] insérer des vidéos dans une anim, possible?
[VB6] comment utiliser des requêtes SQL insert, update ???Est-il possible de transformer une appli Access 2000 exe en website ?!
[Javascript] Est-il possible d'obtenir la source des fichiers *.js ?[JAVA] est-il possible d'iconifier une frame (awt) ?
[C ou C++] Est-il possible de retrouver un source à partir d'un exeEst t'il possible d'utiliser Bind (DNS) avec une base de donné Mysql ?
Plus de sujets relatifs à : update imbriqué?? est ce possible


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