У меня есть этот запрос, к которому уже присоединена таблица, и результаты ожидаемые. Они соответствуют 1-й таблице
SELECT
A.RH6001 as Referencia,
A.RH6002 as UAP,
A.RH6030 as ConsumoWeek01,
A.RH6031 as ConsumoWeek02,
IC130M.LLBLT1 as Stock,
0 as PecasPorCaixa
FROM AUTO.D805DATPOR.TRP060H AS A
LEFT JOIN AUTO.D805DATPOR.IC130M IC130M
ON A.RH6001 = IC130M.LLPPN AND
IC130M.LLSTLC =
CASE A.RH6002
WHEN 'UAP1' THEN 'M1'
WHEN 'UAP2' THEN 'M2'
WHEN 'UAP3' THEN 'M3'
WHEN 'UAP4' THEN 'M4'
WHEN 'UAP5' THEN 'M5'
WHEN 'UAP6' THEN 'M6'
WHEN 'UAPP' THEN 'PROTOS'
WHEN 'EXT' THEN 'EXTR'
END
WHERE (A.RH6001 Not Like 'FS%')
AND A.RH6030 <> 0
ORDER BY Referencia DESC')
Что возвращает мне 1361 строк.
Теперь у меня есть другой запрос
SELECT
YDAUREP.AUD5CD AS Referencia,
YDAUREP.AUQCON AS PecasPorCaixa
FROM
AUTO.YSACHAPOR.YDAUREP YDAUREP
WHERE (YDAUREP.AUD5CD Like 'M%'
AND YDAUREP.AUD5CD Not Like '%P%')
AND (YDAUREP.AUA0NB>1)
AND (YDAUREP.AUG6ST='O')
ORDER BY YDAUREP.AUD5CD'
Что возвращает 785 строк
Я хочу объединить обе таблицы, где все строки во 2-й таблице соответствуют 1-й таблице, в основном это должно вернуть мне 1361 строк.
Мне нужно объединить обе таблицы, используя столбец Referencia
, проблема в том, что это уникальное значение во 2-й таблице, в то время как в 1-й таблице это не так, и я думаю, что из-за этого он не возвращает ожидаемые строки ,
Вот запрос с объединением обеих таблиц:
SELECT
A.RH6001 as Referencia,
A.RH6002 as UAP,
A.RH6030 as ConsumoWeek01,
A.RH6031 as ConsumoWeek02,
IC130M.LLBLT1 as Stock,
YDAUREP.AUQCON AS PecasPorCaixa
FROM AUTO.D805DATPOR.TRP060H AS A
LEFT JOIN AUTO.D805DATPOR.IC130M IC130M
ON A.RH6001 = IC130M.LLPPN AND
IC130M.LLSTLC =
CASE A.RH6002
WHEN 'UAP1' THEN 'M1'
WHEN 'UAP2' THEN 'M2'
WHEN 'UAP3' THEN 'M3'
WHEN 'UAP4' THEN 'M4'
WHEN 'UAP5' THEN 'M5'
WHEN 'UAP6' THEN 'M6'
WHEN 'UAPP' THEN 'PROTOS'
WHEN 'EXT' THEN 'EXTR'
END
LEFT JOIN AUTO.YSACHAPOR.YDAUREP YDAUREP
ON YDAUREP.AUD5CD = A.RH6001
WHERE (A.RH6001 Not Like 'FS%')
AND A.RH6030 <> 0
AND (YDAUREP.AUD5CD Like 'M%'
AND YDAUREP.AUD5CD Not Like '%P%')
AND (YDAUREP.AUA0NB>1)
AND (YDAUREP.AUG6ST='O')
ORDER BY Referencia DESC'
Либо я делаю что-то не так, либо я больше не знаю, как использовать объединения.
Я выполняю левое соединение, и возвращаемый результат равен 579 строкам, что означает, что он возвращает мне все строки из 2-й таблицы, которые соответствуют 1-й таблице, и я подумал, что левое объединение сделает противоположное.
В любом случае, даже если я использую Right Join, он возвращает мне те же строки ...
Я не уверен, но проблема может заключаться в дополнительных пунктах where, которые я добавил.
Как я могу получить свои 1361 строки только с данными во второй таблице, которая соответствует?
Остальные могут быть NULL
...