Cursor : 2tables en une seule

Signaler
Messages postés
102
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
24 janvier 2013
-
Messages postés
268
Date d'inscription
samedi 22 février 2003
Statut
Membre
Dernière intervention
24 avril 2013
-
Bonjour,
j'ai le besoin de récupérer une table finale à partir de 2 tables temporaires :

Table Temp1 :
CREATE TABLE #FOU
(CodArtFou VarChar(20),
CodArt nchar(8),
StckTh decimal(5),
Libelle nchar(100))

l'insert :
@NumInv nchar(12)

INSERT INTO #FOU
SELECT     INVENTAIRE_LIGNES.CodeArtFouLIN, INVENTAIRE_LIGNES.CodeArticleLIN, INVENTAIRE_LIGNES.QteTheoLIN, INVENTAIRE_LIGNES.LibelleLIN
FROM         INVENTAIRE_LIGNES INNER JOIN
                      ARTICLE_EAN ON INVENTAIRE_LIGNES.CodeArticleLIN = ARTICLE_EAN.CodArticleEAN
WHERE     (INVENTAIRE_LIGNES.NumeroLIN = @NumInv)

exemple de données :

| CodArtFou        ||  CodArt     || StkTh || Libelle                               |
|-------------------------------------------------------------------  |
|026102012MG  || 21033643 ||   4       ||  AMORT.GAZ.AV.FIAT |
|-------------------------------------------------------------------- |     

                                                                  
Table Temp2 :
CREATE TABLE #EAN
(CodEAN varchar(20),
CodArt nchar(8),
StckTh decimal(5),
libelle nchar(100))

l'insert :
@NumInv nchar(12)

INSERT INTO #EAN
SELECT     ARTICLE_EAN.CodEAN, INVENTAIRE_LIGNES.CodeArticleLIN, INVENTAIRE_LIGNES.QteTheoLIN, INVENTAIRE_LIGNES.LibelleLIN
FROM         INVENTAIRE_LIGNES INNER JOIN
                      ARTICLE_EAN ON INVENTAIRE_LIGNES.CodeArticleLIN = ARTICLE_EAN.CodArticleEAN
WHERE     (INVENTAIRE_LIGNES.NumeroLIN = @NumInv)

exemple de données :

|CodEAN           ||  CodArt     || StkTh || Libelle                               |

|-------------------------------------------------------------------  |

|1564645            || 21033643 ||   4       ||  AMORT.GAZ.AV.FIAT |

|-------------------------------------------------------------------- |

Voila pour mes 2 tables temporaires, maintenant, j'aimerais récupérer dans un table finale.

En effet j'ai pour un même CodArt, un CodEAN et un CodFou.

Table Finale :
CREATE TABLE INVENTAIRE_EXPORT_DOUCHETTE
(CodePri varchar(20),
CodArt nchar(8),
StckTh decimal(5),
Libelle nchar(100))

Résultat souhaité : (avec les 2lignes des exemples précédents)

|CodePri           ||  CodArt     || StkTh || Libelle                             |


|------------------------------------------------------------------- |


|1564645            || 21033643 ||   4       ||  AMORT.GAZ.AV.FIAT |


|--------------------------------------------------------------------|
|026102012MG || 21033643  ||   4       ||  AMORT.GAZ.AV.FIAT |

Comme cela pour tous les mêmes CodArt.

J'ai pensais faire un curseur, mais je ne vois pas trop comment obtenir ce résultat si certains pensent pouvoir m'aider n'hésitais pas, ou si il vous manque des infos dites le.

Merci.

1 réponse

Messages postés
268
Date d'inscription
samedi 22 février 2003
Statut
Membre
Dernière intervention
24 avril 2013
3
pas sur d'avoir bien pigé mais a priorie il s'agit simplement d'une union nan?

dans ce cas tu fai juste
INSERT INTO INVENTAIRE_EXPORT_DOUCHETTE
(
   CodePri,
   CodArt,
   StckTh,
   Libelle
)
SELECT
   CodArtFou,
   CodArt,
   StckTh,
   Libelle
FROM #FOU
UNION ALL SELECT
   CodEAN,
   CodArt,
   StckTh,
   libelle
)
FROM #EAN