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

Développement SQL Server Discussion :

problème dans une requête INSERT


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Avril 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 72
    Par défaut problème dans une requête INSERT
    Bonjour,

    j'ai un soucie dans ma SP je veux insérer la différence de deux lignes entre deux tables dans une autre table.
    mais à chaque fois il m'insère la même valeur.

    merci d'avance pour votre aide

    voici le code:


    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:		<Author,,Name>
    -- Create date: <Create Date,,>
    -- Description:	<Description,,>
    -- =============================================
     
    Alter PROCEDURE essaie
    AS
    BEGIN
    delete from table_4
     
     
     
    declare @V1 as int
    select @V1 = (A.valeur - B.valeur) from Table_1 A join table_2 B on A.Id1 = B.Id1 where A.origine = 'xx'
     
     
     
    insert into table_4 
    (
    id3,
    id2,
    Valeur,
    origine
    )
     
    select 
           A.id1
          ,B.id2
          ,@V1
          ,'sam'
     
    from  table_1 A join table_2 B on A.id1 = B.id1
     
     
    --===============
    declare @V2 as int
    select @V2 = AVG(Valeur) from Table_4 where origine = 'sam'
     
     
     
    insert into table_4 
    (
    id3,
    id2,
    Valeur,
    origine
    )
     
         values ( 
           7
          ,8
          ,@V2
          ,'S_Sam')
     
     
     
    END
    GO

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Billets dans le blog
    8
    Par défaut
    Pour pouvoir t'aider, et vérifier tes requêtes, il faut que tu nous fournisses, le vrai script de création des 3 tables Table_1, Table_2 et Table_4, intégrant, pour chacune, la définition des clé primaire, et des liens de clés étrangères (FK) entre ces tables, etc.
    Le résultat que tu décrits :
    ..chaque fois il m'insère la même valeur..
    ne me surprends guère. En effet, dans l'instruction :
    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
    insert into table_4
    (
    id3,
    id2,
    Valeur,
    origine
    )
    select
    A.id1
    ,B.id2
    ,@V1
    ,'sam'
    from table_1 A 
    join table_2 B 
    on A.id1 = B.id1
    la variable @V1 est considérée comme une constante et donc sa valeur est propagée dans table_4 pour tous les enregistrements obtenues par jointure entre Table_1 et Table_2 !!!!
    Comme je l'ai indiqué, ton message manque de précision, et au peu d'information dont on dispose, ta requête devrait peut-être ressembler à ceci

    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
    17
    insert into table_4
    (
    id3,
    id2,
    Valeur,
    origine
    )
    select
    A.id1
    ,B.id2
    -- ,@V1  -- ligne mise en commentaire 
    (A.valeur - B.valeur) -- ligne de remplacement       
    ,'sam'
    from table_1 A 
    inner join table_2 B  -- Ajout mot inner          
    on A.id1 = B.id1
    where A.origine = 'xx'  -- nouvelle ligne ajoutée
    A+

Discussions similaires

  1. problème dans une requête d'insertion
    Par SmileSoft dans le forum C++Builder
    Réponses: 16
    Dernier message: 04/02/2009, 08h47
  2. Problème dans une requête d'insertion
    Par celica dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 19/09/2007, 15h28
  3. Problème dans une requête SQL avec AS et ON ?
    Par bds2006 dans le forum Bases de données
    Réponses: 9
    Dernier message: 26/06/2006, 15h25
  4. problème dans une requête
    Par pierrOPSG dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/11/2005, 10h28
  5. Problème sur une requête INSERT
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/06/2003, 08h45

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