×
Linguagem de Programação ADVPL
Perguntas [Ajuda] Query
- ftvernier
- Autor do Tópico
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 386
- Obrigados Recebidos: 2
10 anos 1 semana atrás #26115
por ftvernier
[Ajuda] Query foi criado por ftvernier
Fala Galera Bom Dia,
Seguinte estou precisando de uma ajuda com uma query...
Tenho um relatório que captura alguns dados na SE2 porém eu também precisava capturar a última movimentação dessa nota na SE5.
Alguém poderia me ajudar a ajustar a query abaixo:
SELECT DISTINCT 'SE2' TIPO, CTT_CUSTO, CTT_CLASSE, CTT_CCSUP, CTT_DESC01, E2.E2_NUM, E2.E2_PREFIXO, E2.E2_PARCELA, E2.E2_TIPO, E2.E2_FORNECE, E2.E2_LOJA, E2.E2_VALOR VALOR_PAGO, E2.E2_VALOR VALOR_TOTAL
FROM CTT010 CTT (NOLOCK)
INNER JOIN SE2010 E2 (NOLOCK)
ON E2_SALDO = 0 AND E2_TIPO<>'NDF' And E2.E2_CCUSTO = CTT.CTT_CUSTO AND E2.D_E_L_E_T_ = '' AND E2_BAIXA BETWEEN '20140901' AND '20140930'
WHERE CTT_BLOQ <> '1' AND CTT_CLASSE <> '1' AND CTT.D_E_L_E_T_ = ''
AND CTT.CTT_CUSTO BETWEEN '2010004 ' AND '2010004 '
AND NOT EXISTS(SELECT 'Z' FROM SDE010 DE (NOLOCK) WHERE DE.DE_DOC = E2.E2_NUM AND DE.DE_SERIE = E2.E2_PREFIXO AND DE.DE_FORNECE = E2.E2_FORNECE AND DE.DE_LOJA = E2.E2_LOJA AND DE.D_E_L_E_T_ = '')
AND NOT EXISTS(SELECT 'Z' FROM SE5010 E5 (NOLOCK) WHERE E5.E5_NUMERO = E2.E2_NUM AND E5.E5_PREFIXO = E2.E2_PREFIXO AND E5.E5_CLIFOR = E2.E2_FORNECE AND E5.E5_LOJA = E2.E2_LOJA AND E5.D_E_L_E_T_ = ''AND E5.E5_MOTBX IN ('DAC','CMP'))
AND E2_TIPO <> 'PA'
Seguinte estou precisando de uma ajuda com uma query...
Tenho um relatório que captura alguns dados na SE2 porém eu também precisava capturar a última movimentação dessa nota na SE5.
Alguém poderia me ajudar a ajustar a query abaixo:
SELECT DISTINCT 'SE2' TIPO, CTT_CUSTO, CTT_CLASSE, CTT_CCSUP, CTT_DESC01, E2.E2_NUM, E2.E2_PREFIXO, E2.E2_PARCELA, E2.E2_TIPO, E2.E2_FORNECE, E2.E2_LOJA, E2.E2_VALOR VALOR_PAGO, E2.E2_VALOR VALOR_TOTAL
FROM CTT010 CTT (NOLOCK)
INNER JOIN SE2010 E2 (NOLOCK)
ON E2_SALDO = 0 AND E2_TIPO<>'NDF' And E2.E2_CCUSTO = CTT.CTT_CUSTO AND E2.D_E_L_E_T_ = '' AND E2_BAIXA BETWEEN '20140901' AND '20140930'
WHERE CTT_BLOQ <> '1' AND CTT_CLASSE <> '1' AND CTT.D_E_L_E_T_ = ''
AND CTT.CTT_CUSTO BETWEEN '2010004 ' AND '2010004 '
AND NOT EXISTS(SELECT 'Z' FROM SDE010 DE (NOLOCK) WHERE DE.DE_DOC = E2.E2_NUM AND DE.DE_SERIE = E2.E2_PREFIXO AND DE.DE_FORNECE = E2.E2_FORNECE AND DE.DE_LOJA = E2.E2_LOJA AND DE.D_E_L_E_T_ = '')
AND NOT EXISTS(SELECT 'Z' FROM SE5010 E5 (NOLOCK) WHERE E5.E5_NUMERO = E2.E2_NUM AND E5.E5_PREFIXO = E2.E2_PREFIXO AND E5.E5_CLIFOR = E2.E2_FORNECE AND E5.E5_LOJA = E2.E2_LOJA AND E5.D_E_L_E_T_ = ''AND E5.E5_MOTBX IN ('DAC','CMP'))
AND E2_TIPO <> 'PA'
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
10 anos 1 semana atrás #26125
por kanaamlrr
Respondido por kanaamlrr no tópico [Ajuda] Query
Opa!!
Testa desse jeito:
WITH CTE AS (SELECT TOP 1 * FROM SE5010 WHERE
D_E_L_E_T_ <> '*' ORDER BY R_E_C_N_O_ DESC)
SELECT DISTINCT 'SE2' TIPO, CTT_CUSTO, CTT_CLASSE, CTT_CCSUP, CTT_DESC01, E2.E2_NUM, E2.E2_PREFIXO, E2.E2_PARCELA, E2.E2_TIPO, E2.E2_FORNECE, E2.E2_LOJA, E2.E2_VALOR VALOR_PAGO, E2.E2_VALOR VALOR_TOTAL
FROM CTT010 CTT (NOLOCK)
INNER JOIN SE2010 E2 (NOLOCK)
ON E2_SALDO = 0 AND E2_TIPO<>'NDF' And E2.E2_CCUSTO = CTT.CTT_CUSTO AND E2.D_E_L_E_T_ = '' AND E2_BAIXA BETWEEN '20140901' AND '20140930'
INNER JOIN CTE ON CTE.E5_PREFIXO = E2.E2_PREFIXO AND CTE.E5_NUMERO = E2.E2_NUM AND CTE.E5_PARCELA = E2.E2_PARCELA AND CTE.E5_CLIFOR = E2.E2_FORNECE AND CTE.E5_LOJA = E2.E2_LOJA
WHERE CTT_BLOQ <> '1' AND CTT_CLASSE <> '1' AND CTT.D_E_L_E_T_ = ''
AND CTT.CTT_CUSTO BETWEEN '2010004 ' AND '2010004 '
AND NOT EXISTS(SELECT 'Z' FROM SDE010 DE (NOLOCK) WHERE DE.DE_DOC = E2.E2_NUM AND DE.DE_SERIE = E2.E2_PREFIXO AND DE.DE_FORNECE = E2.E2_FORNECE AND DE.DE_LOJA = E2.E2_LOJA AND DE.D_E_L_E_T_ = '')
AND NOT EXISTS(SELECT 'Z' FROM SE5010 E5 (NOLOCK) WHERE E5.E5_NUMERO = E2.E2_NUM AND E5.E5_PREFIXO = E2.E2_PREFIXO AND E5.E5_CLIFOR = E2.E2_FORNECE AND E5.E5_LOJA = E2.E2_LOJA AND E5.D_E_L_E_T_ = ''AND E5.E5_MOTBX IN ('DAC','CMP'))
AND E2_TIPO <> 'PA'
Você só vai precisar colocar os campos da SE5 que você for usar ai na listagem do select.
Não cheguei a testar, mas deve dar certo
Abraço!
Testa desse jeito:
WITH CTE AS (SELECT TOP 1 * FROM SE5010 WHERE
D_E_L_E_T_ <> '*' ORDER BY R_E_C_N_O_ DESC)
SELECT DISTINCT 'SE2' TIPO, CTT_CUSTO, CTT_CLASSE, CTT_CCSUP, CTT_DESC01, E2.E2_NUM, E2.E2_PREFIXO, E2.E2_PARCELA, E2.E2_TIPO, E2.E2_FORNECE, E2.E2_LOJA, E2.E2_VALOR VALOR_PAGO, E2.E2_VALOR VALOR_TOTAL
FROM CTT010 CTT (NOLOCK)
INNER JOIN SE2010 E2 (NOLOCK)
ON E2_SALDO = 0 AND E2_TIPO<>'NDF' And E2.E2_CCUSTO = CTT.CTT_CUSTO AND E2.D_E_L_E_T_ = '' AND E2_BAIXA BETWEEN '20140901' AND '20140930'
INNER JOIN CTE ON CTE.E5_PREFIXO = E2.E2_PREFIXO AND CTE.E5_NUMERO = E2.E2_NUM AND CTE.E5_PARCELA = E2.E2_PARCELA AND CTE.E5_CLIFOR = E2.E2_FORNECE AND CTE.E5_LOJA = E2.E2_LOJA
WHERE CTT_BLOQ <> '1' AND CTT_CLASSE <> '1' AND CTT.D_E_L_E_T_ = ''
AND CTT.CTT_CUSTO BETWEEN '2010004 ' AND '2010004 '
AND NOT EXISTS(SELECT 'Z' FROM SDE010 DE (NOLOCK) WHERE DE.DE_DOC = E2.E2_NUM AND DE.DE_SERIE = E2.E2_PREFIXO AND DE.DE_FORNECE = E2.E2_FORNECE AND DE.DE_LOJA = E2.E2_LOJA AND DE.D_E_L_E_T_ = '')
AND NOT EXISTS(SELECT 'Z' FROM SE5010 E5 (NOLOCK) WHERE E5.E5_NUMERO = E2.E2_NUM AND E5.E5_PREFIXO = E2.E2_PREFIXO AND E5.E5_CLIFOR = E2.E2_FORNECE AND E5.E5_LOJA = E2.E2_LOJA AND E5.D_E_L_E_T_ = ''AND E5.E5_MOTBX IN ('DAC','CMP'))
AND E2_TIPO <> 'PA'
Você só vai precisar colocar os campos da SE5 que você for usar ai na listagem do select.
Não cheguei a testar, mas deve dar certo
Abraço!
Por favor Acessar ou Registrar para participar da conversa.
- ftvernier
- Autor do Tópico
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 386
- Obrigados Recebidos: 2
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
- ftvernier
- Autor do Tópico
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 386
- Obrigados Recebidos: 2
Tempo para a criação da página:0.085 segundos