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 :
Mon script de calcul de coût que je n'arrive pas à faire passer:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 select al.id_article,al.id_achat_ligne, al.mnt_total_ht, al.nb_lot_cmde, al.qte_cmde, al.lg_cmde, al.tot_cmde, al.id_unite_cmde, al.id_unite_tot_cmde, tmp.date_livre, ach.num_achat from toperp.t_achat_ligne al inner join ( SELECT a.id_article ,max(a.date_livre) AS date_livre ,max(a.id_achat_ligne) keep (dense_rank first order by date_livre DESC) AS id_achat_ligne FROM t_achat_bl_ligne a WHERE a.date_livre < TO_DATE('30/09/2011','DD/MM/YYYY') GROUP BY a.id_article ) tmp on tmp. id_achat_ligne = al.id_achat_ligne inner join toperp.t_achat ach on al.id_achat = ach.id_achat where al.mnt_total_ht > 0
Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 UPDATE T_ARTICLE ART SET PU=(SELECT tmp.cout_unit FROM ( select a.id_article, b.MNT_TOTAL_HT / (b.NB_LOT_CMDE * b.qte_cmde * b.lg_cmde ) as cout_unit from t_article a, V_RAPPRO_BL_ACHAT b where a.id_article = b.id_article and a.id_unite_stock = id_unite_cmde and b.id_unite_cmde <> b.id_unite_tot_cmde and a.id_groupe_article in (1,3)) tmp WHERE ART.id_article=tmp.id_article)
Julien.
Partager