none
sql server - tabelas temporárias RRS feed

  • Pergunta

  • Preciso de ajuda.

    alguém sabe o por quê do erro no comando insert @abono do seguinte código::

    declare @abono table
    (id_func int, cod_funcionario char(10), dta_abono datetime)

    insert @abono
    select cod_empresa, cod_funcionario,dta_abono from abonos
    where cod_funcionario = '000005'

    segunda-feira, 23 de julho de 2007 12:53

Respostas

  • Você deve ter algum valor Nulo (Null) na sua tabela, vamos mudar para isso e ver se funciona:

     

    AND CONVERT(INT, ISNULL(EMPRESA.FANTASIA,0)) = @COD_EMPRESA

     

    Veja se resolve.

     

    Até

     

     

     

    terça-feira, 24 de julho de 2007 12:52

Todas as Respostas

  • Qual o erro que esta dando?
    segunda-feira, 23 de julho de 2007 15:25
  • talves vc possa me ajudar com esse novo código:
    O problema é que eu declaro a variável @COD_EMPRESA, logo abaixo, e quando imponho uma condição a ela( na clausula WHERE- veja um comentário antes dela)
    o campo EMPRESA.FANTASIA é do tipo varchar(x) e naum int


    ALTER PROCEDURE [dbo].[PR_SEL_PAGAMENTO_FATURA]

    @COD_EMPRESA INT,

    @COD_FILIAL INT,

    @MES  CHAR(7)

    AS

     

    --///SELECIONA O VALOR PAGO AO FUNCIONARIO/CONSULTOR  ///---

    DECLARE @PAGAMENTO TABLE

    (     fantasia          Varchar(50),

          cod_filial        int,

          cod_funcionario int,

          Nome              Varchar(70),

          Razao_social      Varchar(70),

          mes                     char(7),

          Pagamento         numeric(9,2)

                )

     

    INSERT INTO @PAGAMENTO

    SELECT      EMPRESA.FANTASIA,

                FUNCIONARIO.COD_FILIAL,

                CONVERT(INT,FUNCIONARIO.COD_FUNCIONARIO)'COD_FUNCIONARIO',

                FUNCIONARIO.NOME,

                FORNECEDOR.RAZAO_SOCIAL,

                FECHAMENTO.MES,

                SUM(FECHAMENTO.VALOR) 'PAGAMENTO'

    FROM  FECHAMENTO

                             INNER JOIN EVENTO

    ON    FECHAMENTO.COD_EVENTO        =     EVENTO.COD_EVENTO

                             INNER JOIN FORNECEDOR

    ON    FECHAMENTO.COD_EMPRESA       =     FORNECEDOR.COD_EMPRESA

    AND FECHAMENTO.COD_FILIAL          =     FORNECEDOR.COD_FILIAL

    AND FECHAMENTO.COD_FUNCIONARIO     =     FORNECEDOR.COD_FUNCIONARIO

                             INNER JOIN FUNCIONARIO

    ON    FECHAMENTO.COD_EMPRESA       =     FUNCIONARIO.COD_EMPRESA

    AND FECHAMENTO.COD_FILIAL          =     FUNCIONARIO.COD_FILIAL

    AND FECHAMENTO.COD_FUNCIONARIO     =     FUNCIONARIO.COD_FUNCIONARIO

                             INNER JOIN EMPRESA

    ON    FECHAMENTO.COD_EMPRESA       =     EMPRESA.COD_EMPRESA

    AND FECHAMENTO.COD_FILIAL          =     EMPRESA.COD_FILIAL

    /*clausula WHERE*/ WHERE EVENTO.TIPO ='1'

    AND EMPRESA.FANTASIA = @COD_EMPRESA

    AND EMPRESA.COD_FILIAL = @COD_FILIAL

    AND FECHAMENTO.MES = @MES

    GROUP BY EMPRESA.FANTASIA,

                 FUNCIONARIO.COD_FILIAL,

                 FUNCIONARIO.COD_FUNCIONARIO,

                 FUNCIONARIO.NOME,

                 FORNECEDOR.RAZAO_SOCIAL,

                 FECHAMENTO.MES

    ORDER BY FUNCIONARIO.COD_FUNCIONARIO


    segunda-feira, 23 de julho de 2007 20:06
  • No primeiro post o correto é

     

    insert into @abono ....

     

    Até

     

    segunda-feira, 23 de julho de 2007 23:07
  • No outro post

    como EMPRESA.FANTASIA é varchar e @COD_EMPRESA é int, temos tipos incompatíveis.

     

    Neste caso se você deseja procurar através de texto (varchar, comparação lexicografica) então fica assim:

     

    AND EMPRESA.FANTASIA = CONVERT(VARCHAR(10), @COD_EMPRESA)

     

    Agora caso queira procurar através de número inteiro então fica assim:

     

    AND CONVERT(INT, EMPRESA.FANTASIA) = @COD_EMPRESA.

     

    Até

     

    segunda-feira, 23 de julho de 2007 23:11
  • o Crystal 9 continua apresentando o mesmo erro de que a conversão do tipo varchar para int falhou.
    Obs: utilizo a procura pelo número inteiro...
    terça-feira, 24 de julho de 2007 12:10
  • Você deve ter algum valor Nulo (Null) na sua tabela, vamos mudar para isso e ver se funciona:

     

    AND CONVERT(INT, ISNULL(EMPRESA.FANTASIA,0)) = @COD_EMPRESA

     

    Veja se resolve.

     

    Até

     

     

     

    terça-feira, 24 de julho de 2007 12:52
  • valew Emerson o código funcionou legal....
    até
    terça-feira, 24 de julho de 2007 14:38