IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

[SQL SERV 2K] Problème d'update enregistrement dans procédure


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Points : 110
    Points
    110
    Par défaut [SQL SERV 2K] Problème d'update enregistrement dans procédure
    Bonjour à tous,

    J'ai un petit problème dans une procédure qui insére dans une tables le résultat d'une grosse requête. Dans un premier temps je fais plusieurs union pour récupérer les enregistrement que je veux, puis je dois faire un update sur certains enregistrements et c'est là où ça bug...
    En fait après tous les unions, je dois faire une soustraction de qte_fdm - qte_debut - (les valeurs recherchées ds mon select). Or je n'arrive pas a recuperer les bonnes valeurs dans le select. Les valeurs qte_fdm et qte_debut sont bonnes, c'est la recherche des enr dans le select qui cloche.

    C'est un peu compliquer d'expliquer tous les champs, donc j'imagine qu'il va etre difficile pour vous de comprendre cette requête, cependant si vous voyez un truc qui cloche dans le select de mon update je suis preneur.

    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
    16
     
    /* --- première partie avec les unions */
     
    -- Upadte des qte_mvt
    SET qte_mvt=(qte_fdm)-(qte_debut)-
    ISNULL((
     SELECT SUM(qte_mvt) FROM FAC_0101_STK FAC 
     WHERE  FAC.bu_dest <> FAC_0101_STK.site_bu
     AND FAC.aa_cpta = FAC_0101_STK.aa_cpta 
     AND FAC.mm_cpta=FAC_0101_STK.mm_cpta
     AND FAC.matiere = FAC_0101_STK.matiere
     AND FAC.stock = FAC_0101_STK.stock 
     AND FAC.usine = FAC_0101_STK.usine
     AND FAC.site_bu = FAC_0101_STK.site_bu
     ),0)
    WHERE site_bu=bu_dest and stock <>'00'
    En gros je dois comparer les lignes entre elles, si une ligne ne remplit pas les contions du select et du where on update pas la qte_mvt, mais malheureusement aucun enregistrement n'est updaté.

    Merci pour votre aide.
    Ce n'est pas parce qu'ils sont beaucoup a avoir tort qu'ils ont raison.

  2. #2
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 154
    Points : 110
    Points
    110
    Par défaut
    Bonjour,

    Je ne comprends pas ta requete dans la mesure ou ton ISNULL est mal placé (je pense) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     SELECT ISNULL(SUM(qte_mvt),0) FROM FAC_0101_STK FAC 
     WHERE  FAC.bu_dest <> FAC_0101_STK.site_bu
     AND FAC.aa_cpta = FAC_0101_STK.aa_cpta 
     AND FAC.mm_cpta=FAC_0101_STK.mm_cpta
     AND FAC.matiere = FAC_0101_STK.matiere
     AND FAC.stock = FAC_0101_STK.stock 
     AND FAC.usine = FAC_0101_STK.usine
     AND FAC.site_bu = FAC_0101_STK.site_bu
     WHERE site_bu=bu_dest and stock <>'00'
    De plus, pourquoi ne pas passer par un "inner join" puisque ta clause est obligatoire?

    Et as tu pensé au "in" ? Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT ISNULL(SUM(qte_mvt),0) FROM FAC_0101_STK FAC 
    WHERE FAC.bu_dest not in (select distinct site_bu from FAC_0101_STK)
     
    Etc..
    Voilà quelques pistes: )


    Portekoi

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/05/2010, 11h32
  2. Réponses: 5
    Dernier message: 14/06/2008, 08h32
  3. Réponses: 4
    Dernier message: 05/03/2008, 09h49
  4. [SQL SERV 2000]Problème sur champs Float
    Par Tankian dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 03/08/2006, 14h29
  5. [SQL][ACCESS]Compter le nombres d'enregistrement dans deux..
    Par pc152 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 05/06/2004, 12h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo