Jump to content
  • 0
RICARDOVS

Sintaxe incorreta próxima à palavra-chave 'where'

Question

Estou tentando rodar a consulta abaixo, porém está dando o erro "Sintaxe incorreta próxima à palavra-chave 'where'". Poderiam me ajudar?

 

    SELECT '3. CONTAS BANCARIAS' as OPERACAO,
            SBC.REFERENCIA as DTVENC,
            CTA.CODCTABCOINT COD,
            CTA.DESCRICAO,
            SANKHYA.OBTEM_SALDO_BANCO_TGFMBC(SBC.CODCTABCOINT,convert(DATETIME, :DTSALDO)+1) as SALDODODIA,
            SANKHYA.OBTEM_SALDO_BANCO_TGFMBC(SBC.CODCTABCOINT,convert(DATETIME, :DTSALDO)+1) as SALDOFIN
       FROM TGFSBC SBC,TSICTA CTA
      WHERE SBC.CODCTABCOINT=CTA.CODCTABCOINT
        AND SBC.REFERENCIA=(SELECT MAX(SBC2.REFERENCIA) from TGFSBC SBC2 where SBC2.CODCTABCOINT=CTA.CODCTABCOINT)
        AND CTA.AD_EXIBE_BI='S'

UNION ALL

    select *
      from (select '1. CAMBIAL PENDENTE' AS OPERACAO,
                    MAX(FIN.DTVENC) AS DTVENC,
                    NAT.CODNAT AS COD, 
                    nat.descrnat AS DESCRICAO,  
                    sum(VLRCAMBIAL) AS SALDODODIA,
                    sum(vlrdesdob) as SALDOFIN
                from tgffin FIN JOIN AD_CAMBIAL CAM ON (CAM.NUFIN=FIN.NUFIN)
                    join tgfnat nat on (nat.codnat=fin.codnat)
              where CAM.TIPO='P' group by nat.descrnat, NAT.CODNAT, '1. CAMBIAL PENDENTE') s
    where :OPERACAO='1. CAMBIAL PENDENTE'

UNION ALL

    select *
      from (select '2. CAMBIAL DISPONIVEL' AS OPERACAO,
                    MAX(FIN.DTVENC) AS DTVENC,
                    NAT.CODNAT AS COD, 
                    nat.descrnat AS DESCRICAO,  
                    sum(VLRCAMBIAL) AS SALDODODIA,
                    sum(vlrdesdob) as SALDOFIN
                from tgffin FIN JOIN AD_CAMBIAL CAM ON (CAM.NUFIN=FIN.NUFIN)
                    join tgfnat nat on (nat.codnat=fin.codnat)
              where CAM.TIPO='D' group by nat.descrnat, NAT.CODNAT, '2. CAMBIAL DISPONIVEL') s
    where :OPERACAO='2. CAMBIAL DISPONIVEL'

UNION ALL

    select *
      from (select '4. MOVIMENTO' AS OPERACAO,
                    MAX(FIN.DTVENC) AS DTVENC,
                    NAT.CODNAT AS COD, 
                    nat.descrnat AS DESCRICAO,  
                    sum(fin.vlrdesdob*fin.recdesp) AS SALDODODIA,
                    sum(fin.vlrdesdob*fin.recdesp) AS SALDOFIN
                from tgffin FIN join tgfnat nat on (nat.codnat=fin.codnat)
                    INNER JOIN TGFTOP TOC ON (FIN.CODTIPOPER = TOC.CODTIPOPER AND FIN.DHTIPOPER = TOC.DHALTER)
                    LEFT JOIN AD_CAMBIAL CAM ON (CAM.NUFIN=FIN.NUFIN) AND TOC.DHALTER = (SELECT MAX(TOC.DHALTER) FROM TGFTOP TOC WHERE FIN.CODTIPOPER= TOC.CODTIPOPER) AND TOC.GRUPO<>:ADIANTAMENTOS
            where  (FIN.DHBAIXA is null)
            AND FIN.CODEMP IN :EMPRESA
            AND (FIN.PROVISAO<>:PROVISAO)
            AND (FIN.CODTIPTIT<>19 AND FIN.CODTIPTIT<>20 AND FIN.CODTIPTIT<>21)
            and FIN.DTVENC=:DIA
            group by nat.descrnat, NAT.CODNAT, '4. MOVIMENTO')
    where :OPERACAO='4. MOVIMENTO'

 

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Nossa! Prefiro dividir em várias querys, mas em uma olhada rápida vi que parece estar faltando fechar um parentese após "TOC.GRUPO<>:ADIANTAMENTOS".

 

 

WHERE FIN.CODTIPOPER= TOC.CODTIPOPER) /*< REMOVER*/ AND TOC.GRUPO<>:ADIANTAMENTOS ) /*< ADICIONAR*/

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By asacap1000
      Salve Galera!!! estou com um projeto onde preciso disponibilizar na intranet documentos que estão em um servidor.
      Estes documentos estão salvos em diversas pastas dividido por dias meses e anos etc etc.
      Não quero que list todos os documentos porém ele seria pesquisado.
      Exemplo: NF 123456
      No arquivo salvaram assim "cliente NF 123456.pdf", tentei utilzar o glob porém ele não retorna nada nem deu erro.
      Por ser em outro servidor não seu se ele consegue ler já pesquisei mas não encontrei nada sobre isso.
       
      Saberiam me ajudar com este caso:
       
      Na intranet ele terá uma busca normal de relatórios ao listar essas informações ele diponibiliza um link com o numero da NF a qual eu chamaria essa página para realizar a busca no servidor e assim abrir o arquivo no navegador..
    • By unset
      Olá a todos, estou com uma dúvida se alguém puder me ajudar.
       
      Qual seria a melhor forma de filtrar e como filtrar $_SERVER['REQUEST_METHOD']?
       
      Tenho um formulário simples
      <form action="deletar/10" method="post"> <input type="submit" class="btn btn-sm btn-danger" value="Deletar"> </form> Então recebo o id 10, ai como eu poderia validar esse formulário tendo certeza que ele veio pelo método post do meu servidor aplicando esse ou outro filtro ou método mais eficiente?
       
      Exemplo sem sucesso
      <?php public function deletar($id) { $id = filter_var($id, FILTER_VALIDATE_INT); $metodo = filter_var($_SERVER['REQUEST_METHOD'], FILTER_DEFAULT); if(isset($id) && isset($metodo)): echo 'pode salvar os dados'; endif; echo '<hr>'; var_dump($id); echo '<hr>'; var_dump($metodo); } ?>  
    • By mamotinho
      Olá, pessoal mais uma vez venho pedi a ajuda de vocês estou com um problema ao roda uma query que montei, eu sou iniciante na area e não tenho muito conhecimento então o codigo que fiz foi parte de meu conhecimento básico. bom o que eu quero resolver nessa query é o seguinte, eu quero consultar uma tabela e nela pega todos os registros com a a data vencida e lista ela dentro do while em seguida retornar dentro desse if o valor da coluna de cada uma exemplo de como fiz e ficou com loop infinito.

       
      declare @id int declare @getdate datetime select @id = IDCadastrado, @getdate = RegDate from BancoTeste.dbo.MinhaTabela where RegDate < getdate() while @id is not null begin select * from BancoTeste.dbo.MinhaTabela where IDCadastrado = @id end quando eu executo isso ai ele executa infinitamente o valor do primeiro registro repetidamente.
    • By rdavisp
      Senhores, recorro a ajuda de vocês pois venho do banco de dados Oracle e tenho encontrado certa dificuldade para trabalhar com o SQL Server 2012, mais especificamente com a linguagem Transact-SQL. Pelo o que eu tenho percebido, não se trata de uma linguagem fortemente tipada em relação ao gerenciamento de escopo de variáveis. Exemplo, como as variavéis de cursores, que caso a primeira interação atribua valores válidos para as variáveis e caso na segunda volta do looping seja retornado nulo é mantido o valor da primeira interação. Outra coisa que eu estou tentando entender é o fato da seguinte query dentro de um bloco não retornar resultado dinamincamente na execução:
      SELECT @IDSALAMODELO = SM.ID
            ,@NOMEGRUPO    = G.NOME
        FROM CRT C
            ,GRUPO G
            ,SALAMODELO SM
            ,EMPRESA E
       WHERE C.IDGRUPO      = G.ID
         AND G.IDSALAMODELO = SM.ID
         AND SM.IDEMPRESA   = E.ID
         --
         AND C.ID       = CAST(@CRT AS INT)
         AND C.ATIVO    = @ATIVO
         AND G.ATIVO    = @ATIVO
         AND G.IDINTAKE = @INTAKEATUAL
         AND E.ID       = @IDEMPRESA
      E quando a executo numa janela de consulta com os parametros hardcode ela me retorna resultado. Não estou limpando elas em momento algum e ja tentei deixar os valores hardcode dentro do bloco, mas ainda assim, o resultado permance o mesmo, ou seja, não me retorna resultado.
      Por isso, se possível, gostaria da opinião de vocês para que eu posso solucionar esse problema.
      Grato.
    • By Mfenoglio
      Galera boa tarde, estou com o seguinte problema.
      Eu quero fazer uma conta entre duas tabelas se for PAGO ou RECEBIDO.
      Minha query

       
      SELECT F10_CODBANCO, F10_VALOR, F0S5_RECPAG, SUM(S05_VALOR) AS SVALMOV, G27_N35OMEBAN5CO FROM F10, F05, G27 WHERE FS10_GRUPO = F05_GRUPO AND F10_EMPESA = F0X5_EMPRESA AND F_FILIAL d= F05_FILIAL AND Fa10_CGODBANCO = F05_BANCO AXND F10_GRUPO = G27_G AND F1MPARESA = G27_EAMPRESDA AND F10_FILIAL = G27_FILIAL AND F10_CODBANCO = G27_CODIGO AND FZ10_VALOR <> 0 GROUAP BYA F10_CODCBANCO, FA10_VALOR, F05_RECGHPAG, G27_NHOMEBANAO AORDER BY F10D_CODANCFO  
      o que eu quero é o seguinte, Se F05_RECPAG for igual a P então faça F10_VALOR - SUM(F05_VALOR) AS VALMOV .... agora se for igual a R faça F10_VALOR + SUM(F05_VALOR) AS VALMOV.
       
      Agradeço quem puder me ajudar. vlw
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.