Olá,
A query está incorreta.
O problema está precisamente nesse trecho:
AND SA2.D_E_L_E_T_ = ' '
LEFT JOIN SH6010 SH6 ON
(
SELECT H6_FILIAL, MAX(H6_DTAPONT)H6_DTAPONT, H6_OPERAC, H6_OP, H6_PRODUTO, H6_RECURSO, SUM(H6_QTDPROD)H6_QTDPROD
FROM SH6010 SH6A
WHERE SH6A.D_E_L_E_T_ = ' '
AND SH6A.H6_OPERAC IN
(
SELECT MAX(SH6B.H6_OPERAC) H6_OPERAC
FROM SH6010 SH6B
WHERE SH6B.D_E_L_E_T_ = ' '
AND SH6B.H6_OP = SH6A.H6_OP
GROUP BY SH6B.H6_FILIAL, SH6B.H6_OP
)
GROUP BY H6_FILIAL,H6_OPERAC, H6_OP, H6_PRODUTO, H6_RECURSO
) SH6 ON
SH6.H6_FILIAL = C6_FILIAL
AND SH6.H6_PRODUTO = C6_PRODUTO
AND SUBSTRING(SH6.H6_OP, 1, 6) = C6_NUMOP
AND SUBSTRING(SH6.H6_OP, 7, 2) = C6_ITEMOP
LEFT JOIN SH1T10 SH1 ON
Você faz um LEFT JOIN
na SH6 e no ON
dele, você faz uma subquery dando novamente o nome de SH6 e começando um novo ON
.
Como não sei bem o que você pretende com essa query, mas uma possível correção é você deixar de usar a SH6 diretamente e utilizar somente a subquery:
AND SA2.D_E_L_E_T_ = ' '
LEFT JOIN
(
SELECT H6_FILIAL, MAX(H6_DTAPONT)H6_DTAPONT, H6_OPERAC, H6_OP, H6_PRODUTO, H6_RECURSO, SUM(H6_QTDPROD)H6_QTDPROD
FROM SH6010 SH6A
WHERE SH6A.D_E_L_E_T_ = ' '
AND SH6A.H6_OPERAC IN
(
SELECT MAX(SH6B.H6_OPERAC) H6_OPERAC
FROM SH6010 SH6B
WHERE SH6B.D_E_L_E_T_ = ' '
AND SH6B.H6_OP = SH6A.H6_OP
GROUP BY SH6B.H6_FILIAL, SH6B.H6_OP
)
GROUP BY H6_FILIAL,H6_OPERAC, H6_OP, H6_PRODUTO, H6_RECURSO
) SH6 ON
SH6.H6_FILIAL = C6_FILIAL
AND SH6.H6_PRODUTO = C6_PRODUTO
AND SUBSTRING(SH6.H6_OP, 1, 6) = C6_NUMOP
AND SUBSTRING(SH6.H6_OP, 7, 2) = C6_ITEMOP
LEFT JOIN SH1010 SH1 ON