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

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 72
    Points : 34
    Points
    34
    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 expérimenté

    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
    Points : 1 668
    Points
    1 668
    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+
    "Une idée mal écrite est une idée fausse !"
    http://hamid-mira.blogspot.com

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