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 :

Requête récursive: inserérer le resultat dans une table temporaire


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Par défaut Requête récursive: inserérer le resultat dans une table temporaire
    Hello,

    Pour une extraction de données avec SQL serveur 2005, je voudrais insérer les résultats d'une requête récursive dans une table temporaire, histoire de pouvoir faire d'autres requêtes par la suite. Mais je bloque...

    Ma requête pour avoir tous les composants et sous composants d'un produit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    WITH
       ProduitsDeBase (Composant, Parent) AS
       (
           SELECT composant, produit 
               FROM    nomenclature  
               WHERE produit = '100077500' 
           UNION ALL
           SELECT Enfant.composant, Enfant.produit 
               FROM ProduitsDeBase Parent, nomenclature Enfant 
               WHERE Parent.Composant = Enfant.composant
       ) 
       SELECT ProduitsDeBase.Composant, ProduitsDeBase.Parent
           FROM ProduitsDeBase
    ça marche pas mal, mais comment faire pour insérer les résultats d'une table???

    j'ai essayé avec

    declare @comp varchar(15)
    declare @par varchar(15)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    WITH
       ProduitsDeBase (Composant, Parent) AS
       (
           SELECT composant, produit 
               FROM    nomenclature  
               WHERE produit = '100077500' 
           UNION ALL
           SELECT Enfant.composant, Enfant.produit 
               FROM ProduitsDeBase Parent, nomenclature Enfant 
               WHERE Parent.Composant = Enfant.composant
       ) 
       SELECT @comp = ProduitsDeBase.Composant, @par = ProduitsDeBase.Parent  FROM ProduitsDeBase
     
    insert into tabletemporaie select @comp, @par
    mais ça n'insert qu'une ligne (normal...)

    Quelqu'un connait une solution?? merci d'avance

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Mettez l'INSERT avant le SELECT, comme vous le faites d'habitude

    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
    WITH
       ProduitsDeBase (Composant, Parent) AS
       (
    		SELECT composant, produit 
    		FROM dbo.nomenclature  
    		WHERE produit = '100077500' 
           UNION ALL
    		SELECT Enfant.composant, Enfant.produit 
    		FROM dbo.ProduitsDeBase Parent
    		INNER JOIN dbo.nomenclature Enfant
    			ON Parent.Composant = Enfant.composant
       ) 
    INSERT INTO dbo.tabletemporaie 
    SELECT Composant, Parent
    FROM ProduitsDeBase
    N'oubliez pas de qualifier les objets par le nom du schéma auquel ils appartiennent, et de spécifier vos jointures à la norme SQL 2003

    @++

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Par défaut

    Merci beaucoup!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD17] Afficher le resultat dans une table
    Par ameura1 dans le forum WinDev
    Réponses: 9
    Dernier message: 13/09/2014, 18h53
  2. Réponses: 5
    Dernier message: 10/02/2010, 14h11
  3. [WD10] Calcul simple et ajout du resultat dans une table.
    Par Trebor dans le forum WinDev
    Réponses: 4
    Dernier message: 24/09/2009, 17h51
  4. Requête pour supprimer des doublons dans une table
    Par nomade333 dans le forum Contribuez
    Réponses: 0
    Dernier message: 30/03/2008, 12h48
  5. [Requête]Concaténation de 3 champs dans une table
    Par egg3774 dans le forum Access
    Réponses: 10
    Dernier message: 21/03/2007, 13h09

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