|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre habitué
![]() Inscription : novembre 2008 Messages : 238 ![]() |
Bonjour,
Je souhaite mettre à jour le prix d'inventaire des articles à partir de la dernière livraison avant la fin de l'exercice et de la ligne de commande d'achat correspondante. Pour cela je rapproche la table des lignes de livraison de la table des lignes de commandes d'achat dans une vue. Puis je transforme le montant de la ligne de commande d'achat en unité de stock. Ensuite j'effectue la mise à jour de mon article. Problème: je n'arrive pas à faire la mise à jour (après plus d'une heure d'attente, la mise à jour n'est pas réalisée). Voici mes scripts SQL: Le script de la vue pour rapprocher les livraisons des lignes de commandes d'achat et des commandes d'achat : Code :
Code :
Julien. |
||||
|
|
00
|
|
|
#2 | ||
|
Membre confirmé
![]() Grégoire MARTINIngénieur développement logiciels Inscription : janvier 2011 Messages : 128 ![]() |
Peux tu nous mettre les plan d'executions de ta vue ?
Volumes des tables ? Code :
__________________
Cordialement. |
||
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : novembre 2008 Messages : 238 ![]() |
La table T_article contient 46602 lignes. Il y a un index pk sur id_article. Par contre il n'y a rien sur l'id_unite_stock.
J'ai créé la vue en question. Elle contient 5608 enregistrements. J'ai un message Erreur SQL lorsque je lance votre requête sur SQLDEVELOPPER. Je suis sous Oracle 10g. Julien. |
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 313 ![]() |
Utilisez Merge à la place de l'update.
Quelle version d'Oracle ? |
|
|
10
|
|
|
#5 |
|
Membre habitué
![]() Inscription : novembre 2008 Messages : 238 ![]() |
En consultant l'aide sur Oracle, le merge me permet de dissocier les update et les insert. Je conserve donc l'usage de l'update. Je ne vois pas comment cela pourrait me faire gagner du temps.
Je suis sur Oracle 10g. |
|
|
00
|
|
|
#6 | ||||
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Citation:
Citation:
Sans correspondance la colonne PU sera MAJ à NULL, est ce vraiment ce dont tu as besoin ? Le MERGE pourrait peut être s'écrire comme ça : Code :
|
||||
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Inscription : novembre 2008 Messages : 238 ![]() |
Effectivement, je n'ai aucun intérêt à mettre à jour l'ensemble des enregistrements de la table T_ARTICLE.
La requête que vous proposez me semble correct mais j'ai une erreur SQL Si j'essaye de mettre une parenthèse après le ON et d'inclure le 2ème champ de la jointure, j'ai une erreur "Mot clé absent". |
|
|
00
|
|
|
#8 | ||
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
J'oublie tout le temps les parenthèses liées au ON et j'ai oublié update
:Code :
|
||
|
|
00
|
|
|
#9 |
|
Membre habitué
![]() Inscription : novembre 2008 Messages : 238 ![]() |
Cela fonctionne.
Merci beaucoup ![]() Bonne fin de journée. Julien. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com