2017-05-01 1 views
0
  • Tableau 1 - cales afin données - nom de table - PANFPOS
  • Tableau 2 - maître d'objet - nom de table - PBFSTSS
  • tableau 3 - contient des données d'inventaire en relation avec le tableau 2 - nom de la table - PBESTLO

J'ai une requête qui extrait les données du tableau 1 et du tableau 2; dans ces deux tableaux, il y a trois champs communs - Société, entreprise et numéro d'article.d'assemblage dans une troisième table pour extraire des données

Maintenant, il y a une troisième table qui contient ce numéro de lot associé au numéro d'article dans le tableau 2, que je dois extraire

Ma requête en cours est la suivante: -

SELECT HE2DATV6.PANFPOS.APKONZ as Holding, HE2DATV6.PANFPOS.APFIRM as Firm, HE2DATV6.Panfpos.APANR1 as OrderNo, 
HE2DATV6.Panfpos.APIDEN as Item, HE2DATV6.PBFSTSS.TZBEZ1 concat 
HE2DATV6.PBFSTSS.TZBEZ2 as Description, HE2DATV6.PBFSTSS.TZBEM1 concat 
HE2DATV6.PBFSTSS.TZBEM2 as Family, HE2DATV6.Panfpos.APBSTM as OrderedQty, 
HE2DATV6.Panfpos.APRESM AS AlocatedQty 
FROM HE2DATV6.PANFPOS LEFT OUTER JOIN HE2DATV6.PBFSTSS ON HE2DATV6.PANFPOS.APKONZ = HE2DATV6.PBFSTSS.TZKONZ 
    AND HE2DATV6.PANFPOS.APFIRM = HE2DATV6.PBFSTSS.TZFIRM 
    AND HE2DATV6.PANFPOS.APIDEN = HE2DATV6.PBFSTSS.TZIDEN 
where he2datv6.panfpos.apanr1 = ? and 
HE2DATV6.Panfpos.APIDEN != 'ENDE' 

La requête Je l'ai écrit à se joindre au 2ème et troisième table est la suivante: -

SELECT HE2DATV6.PANFPOS.APKONZ as Holding, HE2DATV6.PANFPOS.APFIRM as Firm, HE2DATV6.Panfpos.APANR1 as OrderNo, 
HE2DATV6.Panfpos.APIDEN as Item, HE2DATV6.PBFSTSS.TZBEZ1 concat 
HE2DATV6.PBFSTSS.TZBEZ2 as Description, HE2DATV6.PBFSTSS.TZBEM1 concat 
HE2DATV6.PBFSTSS.TZBEM2 as Family, HE2DATV6.PBESTLO.BMPRNR as Batch, 
HE2DATV6.Panfpos.APBSTM as OrderedQty, 
HE2DATV6.Panfpos.APRESM AS AlocatedQty 
FROM (HE2DATV6.PANFPOS LEFT OUTER JOIN HE2DATV6.PBFSTSS ON HE2DATV6.PANFPOS.APKONZ = HE2DATV6.PBFSTSS.TZKONZ 
    AND HE2DATV6.PANFPOS.APFIRM = HE2DATV6.PBFSTSS.TZFIRM 
    AND HE2DATV6.PANFPOS.APIDEN = HE2DATV6.PBFSTSS.TZIDEN) 
    (HE2DATV6.PBFSTSS LEFT OUTER JOIN HE2DATV6.PBESTLO ON HE2DATV6.PBFSTSS.TZFIRM = HHE2DATV6.PBFSTSS.BMFIRM 
AND HE2DATV6.PBFSTSS.TZKONZ = HE2DATV6.PBESTLO.BMKONZ 
AND HE2DATV6.PBFSTSS.TZIDEN = HE2DATV6.PBESTLO.BMIDEN) 
    where he2datv6.panfpos.apanr1 = ? and 
HE2DATV6.Panfpos.APIDEN != 'ENDE' 

Je cours cette requête sur l'onglet connexions de données Excel pour extraire un rapport, mais je cours dans un n erreur SQL01014 Token (n'était pas valide.

Répondre

0

Vous n'avez pas besoin de spécifier le nom de la table à nouveau, pour une autre LEFT OUTER JOIN, essayez ceci:

SELECT HE2DATV6.PANFPOS.APKONZ as Holding, HE2DATV6.PANFPOS.APFIRM as Firm, HE2DATV6.Panfpos.APANR1 as OrderNo, 
HE2DATV6.Panfpos.APIDEN as Item, HE2DATV6.PBFSTSS.TZBEZ1 concat 
HE2DATV6.PBFSTSS.TZBEZ2 as Description, HE2DATV6.PBFSTSS.TZBEM1 concat 
HE2DATV6.PBFSTSS.TZBEM2 as Family, HE2DATV6.PBESTLO.BMPRNR as Batch, 
HE2DATV6.Panfpos.APBSTM as OrderedQty, 
HE2DATV6.Panfpos.APRESM AS AlocatedQty 
FROM HE2DATV6.PANFPOS LEFT OUTER JOIN HE2DATV6.PBFSTSS ON HE2DATV6.PANFPOS.APKONZ = HE2DATV6.PBFSTSS.TZKONZ 
    AND HE2DATV6.PANFPOS.APFIRM = HE2DATV6.PBFSTSS.TZFIRM 
    AND HE2DATV6.PANFPOS.APIDEN = HE2DATV6.PBFSTSS.TZIDEN 
    LEFT OUTER JOIN HE2DATV6.PBESTLO ON HE2DATV6.PBFSTSS.TZFIRM = HHE2DATV6.PBFSTSS.BMFIRM 
    AND HE2DATV6.PBFSTSS.TZKONZ = HE2DATV6.PBESTLO.BMKONZ 
    AND HE2DATV6.PBFSTSS.TZIDEN = HE2DATV6.PBESTLO.BMIDEN 
where he2datv6.panfpos.apanr1 = ? and 
HE2DATV6.Panfpos.APIDEN != 'ENDE' 
+0

Merci! travaillé exactement comme requis. – user2269061

+0

Vous pouvez utiliser 'GROUP BY' pour regrouper les valeurs. Autre que cela, il est difficile de répondre sans connaître le contexte complet. –