Cursor : 2tables en une seule

cs_vagg Messages postés 102 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 24 janvier 2013 - 9 févr. 2009 à 12:26
cs_Malkuth Messages postés 268 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 24 avril 2013 - 1 mars 2009 à 21:37
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

cs_Malkuth Messages postés 268 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 24 avril 2013 4
1 mars 2009 à 21:37
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
0
Rejoignez-nous