Udate avec jointure... J'ai un trou [résolu tout seul] - SQL/NoSQL - Programmation
Marsh Posté le 02-01-2006 à 16:12:58
Jeu de test :
Code :
|
Test 1 :
Code :
|
Test 2 :
Code :
|
Marche pas non plus.
Pourtant, je sais qu'il y a moyen de faire marcher ce truc
Marsh Posté le 02-01-2006 à 16:22:39
Hmmm...
Avec SQL Server 2000, j'ai réussi à la faire (parceque je me souvenais de la syntaxe) sauf que je me suis rendu compte que ça ne marche pas si on boucle la jointure sur elle-même
Code :
|
Rien à faire avec Oracle, même si je passe par deux tables... Grrrr c'est quoi cette syntaxe ?
Marsh Posté le 02-01-2006 à 16:24:23
Méthode SQL Server avec une seule table (on passe par un sous-select) :
Code :
|
Marsh Posté le 02-01-2006 à 16:44:58
Quelle bande de tocards
https://secure.experts-exchange.com [...] 3D21507709
Marsh Posté le 02-01-2006 à 16:50:25
Rhâ
http://www.cheblogs.com/roller/com [...] om_another
Code :
|
Citation : ORA-01779 : Impossible modifier colonne correspondant à une table non protégée par une clé |
(avec ou sans PK ça plante, c'est le sous-select qu'il ne veut pas mettre à jour )
Marsh Posté le 02-01-2006 à 16:53:37
Cette solution, évidement, elle marche...
Code :
|
Sauf que dans mon cas, je veux mettre à jour 4 champs... Et la requête un un peu plus compliqué et tape dans une table de plus de 5 lignes... S'pas gagné
Marsh Posté le 02-01-2006 à 16:56:27
YES !!!!!!
Code :
|
Marsh Posté le 02-01-2006 à 17:12:12
Ze final bouquet :
Code :
|
En fait, c'est pour mettre à jour les prix des produits dans des bons de livraison pour deux factures qui font plus de 500 lignes chacune. Et du coup, y'a qq1 qui a changé les deux factures à la main tout le week-end (sympa le réveillon ) et j'ai pas osé lui demander de refaire la même correction les 30 bons de livraison qui en résultent
Marsh Posté le 02-01-2006 à 16:06:06
SGBD : Oracle 8.1.7
Problème :
J'ai une table "evp", et je veux recopier les valeurs de certaines lignes à la place des valeurs d'autres lignes.
J'ai donc besoin de faire une jointure sur elle-même à la sélection, afin de retrouver les valeurs à écrire (et aussi lesquelles mettre à jour)
C'est pas clair
Voici la requête de selection :
=> Le but du jeu, c'est de recopier favp.prxbrt, favp.prxvdu et favp.prxrev à la place de livp.prxbrt, livp.prxvdu et livp.prxrev
Je me souviens que j'ai déjà eu ce truc à faire et que j'avais passé un temps fou à trouver la syntaxe Oracle pour faire ça, mais là je ne me souviens plus
QQ1 à ça sous la main ?
Message édité par Arjuna le 02-01-2006 à 17:02:20