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 rdavi78@gmail.com
      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
    • By tondovale12
      Já resolvi o problema. Obrigado.
      Não vi uma opção de excluir o tópico, então editei antes de ser aprovado.
    • By Bruno_Sam
      Preciso buscar em todas as tabelas do banco um nome de cliente. Não sei quais tabelas contem o nome desse cliente e preciso pois esta errado o nome. Existe algum select que faça busca de um valor em todas as tabelas e fala quais estão???
       
      Obs:Não posso criar tabela temporaria no banco.
    • By wellfc12
      Olá boa noite sou novo neste fórum, estou procurando ajuda pois não sei com eu poderia fazer. Estou modelando um banco de dados e agora cheguei a um ponto que não sei como fazer. 
      Preciso criar uma tabela que registre a movime tacacao de pessoas que iram passar na entrada da empresa, porém quando eu crio o relacionamento desta nova tabela com tabela pessoa para garantir integridade de quem é a pessoa que está entrando ou saída da empresa eu consigo, mas eu preciso também registrar o usuário (porteiro) que está registrando essa movimentação. A minha tabela de pessoas se relaciona com o usuário, pois uma pessoa cadastrada no sistema não necessariamente precisa ter um usuário, mas um usuário pra ter acesso ao sistema e necessário tar cadastrado na tabela pessoas. Quando vou relacionar na nova tabela que a pessoa quem passou é cod 2 exemplo eu preciso registrar qual é usuário quem registrou isso que poderia ser o cod 10 (cod o usuário, que do porteiro que tbm esta cadastrado no sistema) 
       
      Isso pode ser até uma coisa besta mas eu não sei como posso nesta ocasião. 
      Obrigado! 
       
      Anexo coloquei a imagem de uma modelagem que estou fazendo. 
       

×

Important Information

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