SQL Embedded - Query

Boa tarde Pessoal, Sou novo em tudo que se possa imaginar em relação a ADVPL. Estou tentando criar um relatório, porém quando o executa o arquivo vem vazio. Essa é a query:

BeginSql alias "FISREL0001" %noParser%

SELECT F1.F1FILIAL AS FILIAL , F1.F1_DOC AS DOC , F1.F1_SERIE AS SERIE , F1.F1_FORNECE AS FORN , F1.F1_LOJA AS LOJA , (SELECT A2.A2_NOME FROM SA2200 A2 (NOLOCK) WHERE A2.D_E_L_E_T <> '*' AND A2.A2_COD = F1.F1_FORNECE AND A2.A2_LOJA = F1.F1_LOJA) AS NOME_FORN , F1.F1_DTDIGIT AS DATA_DIG , CASE WHEN OBEN.COD_OBJ IS NULL OR OBEN.COD_OBJ = ' ' THEN 'NAO' WHEN OBEN.COD_OBJ != ' ' THEN 'SIM' END AS ANEXO , OBEN.COD_OBJ AS COD_OBJ , OBEN.COD_ENTIDAD AS COD_ENTIDAD , B.ACB_OBJETO AS OBJETO , B.ACB_DESCRI AS OBEJTO_DESCR

FROM SF1200 F1 (NOLOCK) LEFT JOIN (SELECT C9.AC9CODOBJ AS COD_OBJ , C9.AC9_FILENT AS FILIAL , C9.AC9_ENTIDA AS ENTIDAD , C9.AC9_CODENT AS COD_ENTIDAD , LEFT(C9.AC9_CODENT, 9) AS NF , SUBSTRING(C9.AC9_CODENT, 10, 3) AS NF_SERIE , SUBSTRING(C9.AC9_CODENT, 13, 6) AS FORNEC , SUBSTRING(C9.AC9_CODENT, 19, 2) AS LOJA FROM AC9200 C9 (NOLOCK) WHERE C9.D_E_L_E_T <> '' AND C9.AC9ENTIDA = 'SF1') AS OBEN ON (F1.F1_DOC = OBEN.NF AND F1.F1_SERIE = OBEN.NF_SERIE AND F1.F1_FORNECE = OBEN.FORNEC AND F1.F1_LOJA = OBEN.LOJA) LEFT JOIN ACB200 B ON (OBEN.COD_OBJ = B.ACB_CODOBJ AND B.D_E_L_E_T <> '') WHERE F1.DE_L_E_T <> '*' AND F1.F1_DTDIGIT between %exp:MV_PAR01% and %exp:MV_PAR02% ORDER BY F1.F1_DTDIGIT

EndSql

Funciona perfeitamente no SQL Server. O uso de funções SQL funciona utilizando Embedded SQL?

compartilhar
  • O Embedded SQL trabalhar normalmente com funções, você está apontando para o mesmo banco de dados? Monitore a thread do DBAccess, ele vai exibir como ele montou a query e enviou a banco de dados, assim você pode ver se foi gerado algum problema na mesma.

    Daniel Mendes   15 de Jan de 2021
  • Outra sugestão para verificar a query executada é colocar um breakpoint logo após a execução do Embedded SQL e utilizar a função GetLastQuery() com debug ainda pausado. Ela retorna irá retornar um array com algumas informações, incluindo a query já pronta para ser executada no banco.

    Lucas Briesemeister   18 de Jan de 2021
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags relatorio embededsql embedded-sql advpl ou faça a sua própria pergunta.