Объединение в третьей таблице для извлечения данных
- таблица 1 - содержит данные заказа - имя таблицы - PANFPOS
- Таблица 2 - Основная запись - имя таблицы - PBFSTSS
- Таблица 3 - содержит данные инвентаризации, связанные с таблицей 2 - Название таблицы - PBESTLO
У меня есть запрос, который извлекает данные из таблицы 1 и таблицы 2, в этих двух таблицах есть три общих поля - компания, фирма и номер позиции.
Теперь есть третья таблица, которая содержит этот номер партии, связанный с номером позиции в таблице 2, который мне нужно извлечь
Мой текущий запрос выглядит следующим образом:
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'
Запрос, который я написал, чтобы присоединиться ко второй и третьей таблицам, выглядит следующим образом:
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'
Я выполняю этот запрос на вкладке "Подключения к данным Excel" для извлечения отчета, но сталкиваюсь с ошибкой SQL01014 Token (недопустимый.
1 ответ
Вам не нужно указывать имя таблицы снова, для другого LEFT OUTER JOIN
, попробуй это:
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'