× Linguagem de Programação ADVPL

Perguntas erro "incorrect syntax near the keyword 'Join'

Mais
10 anos 9 meses atrás #20781 por eliveltons
Ola Pessoal estou com o seguinte erro em um programa de relatório que estou fazendo:
"incorrect syntax near the keyword 'Join'" como posso resolver isto???


cQuery := "SELECT DISTINCT F2_DOC,F2_EMISSAO,A1_COD,A1_NOME,F2_ICMSRET"
cQuery += "FROM "+RetSQLName("SF2")+"INNER JOIN SA1010 ON F2_CLIENTE = A1_COD AND F2_LOJA = A1_LOJA"
cQuery += "INNER JOIN SD2010 ON F2_DOC = D2_DOC AND F2_SERIE = D2_SERIE"
cQuery += "WHERE A1_GRPVEN BETWEEN '"+MV_PAR03+"' AND '"+MV_PAR04+"' AND F2_SERIE = '001'"
cQuery += "AND F2_EMISSAO BETWEEN '"+DtoS(MV_PAR01)+"' AND '"+DtoS(MV_PAR02)+"'"
cQuery += "AND D2_GRUPO <> '0109' AND D2_GRUPO <> '0105' "
cQuery += "ORDER BY F2_DOC ASC "

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 9 meses atrás #20783 por dexter
Essas concatenações são uma indução a erros.

Acho que é no seu INNER JOIN que ta faltando um space.

>> aqui -> RetSQLName("SF2")+"INNER JOIN SA1010

>> ou aqui -> F2_LOJA = A1_LOJA"
cQuery += "INNER JOIN SD2010

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 9 meses atrás #20785 por eliveltons
JA TENTEI EU DEI UM ESPAÇO NO INNER JOIN SD2010, E APARECE O QUASE O MESMO ERRO MAS DESTA VEZ NO INNER
"incorrect syntax near the keyword 'Inner'"

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 9 meses atrás #20787 por kanaamlrr
Elivelton, você esqueceu de colocar espaço após o A1_LOJA.

Como boa prática, para evitar esse tipo de erro, utilize sempre 1 espaço do começo e 1 no final de cada linha de query.
Da seguinte forma:
cQuery := " SELECT DISTINCT F2_DOC,F2_EMISSAO,A1_COD,A1_NOME,F2_ICMSRET "
cQuery += " FROM "+RetSQLName("SF2")+"INNER JOIN SA1010 ON F2_CLIENTE = A1_COD AND F2_LOJA = A1_LOJA "
cQuery += " INNER JOIN SD2010 ON F2_DOC = D2_DOC AND F2_SERIE = D2_SERIE "
cQuery += " WHERE A1_GRPVEN BETWEEN '"+MV_PAR03+"' AND '"+MV_PAR04+"' AND F2_SERIE = '001' "
cQuery += " AND F2_EMISSAO BETWEEN '"+DtoS(MV_PAR01)+"' AND '"+DtoS(MV_PAR02)+"' "
cQuery += " AND D2_GRUPO <> '0109' AND D2_GRUPO <> '0105' "
cQuery += " ORDER BY F2_DOC ASC "

Abraço!

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 9 meses atrás #20788 por eliveltons
Muito obrigado Kanaãm!!! erro de principiante kkk : )

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.110 segundos
Joomla templates by a4joomla