none
Zero a esqueda da soma RRS feed

  • Pergunta

  • Pessoal,

    Quero colocar zero à esqueda do resultado da soma

    Select sum(cast(campo as money))/100 from tabela

     

    exemplo:   0000000500

    ???????

    quinta-feira, 17 de fevereiro de 2011 18:04

Respostas

  • segue um script básico

    declare @teste int
    set @teste=454
    select right('0000000'+cast(@teste as varchar(10)),5)
    --seu exemplo
    Select right('0000000'+cast(sum(cast(campo as money))/100 as varchar(10)),5) from tabela
    
    
    

    att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    • Marcado como Resposta Roberto Piagem sexta-feira, 25 de fevereiro de 2011 13:12
    quinta-feira, 17 de fevereiro de 2011 18:12
    Moderador
  • Roberto,

    é devido ao tamanho do varchar e a quantidade de caracteres do seu campo money.. o money pode atingir até 19 caracteres.. acredito que o script abaixo deve resolver

    Select right('0000000'+cast(sum(cast(campo as money))/100 as varchar(19)),5) from tabela
    

    att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    • Sugerido como Resposta Eder Costa segunda-feira, 21 de fevereiro de 2011 18:04
    • Marcado como Resposta Roberto Piagem sexta-feira, 25 de fevereiro de 2011 13:12
    quinta-feira, 17 de fevereiro de 2011 18:28
    Moderador
  • Vc quer so a parte inteira da divisão ? se for convert para int ja para eliminar as casas decimais... no mais... existe uma forma de preencher com zeros a esquerda que eu não vejo ninguem usando... mas particulamente eu acho mais rapida...

    RIGHT(X + 10^N, N)

    onde:
    X: Valor Numerico que deseja ser convertido em String
    N: Numero de caracteres de retorno da string

    DECLARE @TABELA TABLE (CAMPO VARCHAR(10))
    INSERT INTO @TABELA VALUES('000100')
    INSERT INTO @TABELA VALUES('000120')
    INSERT INTO @TABELA VALUES('002500')
    
    SELECT RIGHT((SUM(CAST(CAMPO AS INT)) / 100) + 10000000000, 10) FROM @TABELA
    

     

    • Sugerido como Resposta Eder Costa segunda-feira, 21 de fevereiro de 2011 18:04
    • Marcado como Resposta Roberto Piagem sexta-feira, 25 de fevereiro de 2011 13:12
    quinta-feira, 17 de fevereiro de 2011 18:57
    Moderador
  • Olá Roberto!

    Houve algum progresso nesta questão? Os exemplos sugeridos foram úteis?

    att;


    Eder Costa - LATAM Forum Support Engineer
    Microsoft Corporation
    • Marcado como Resposta Roberto Piagem sexta-feira, 25 de fevereiro de 2011 13:12
    segunda-feira, 21 de fevereiro de 2011 18:05
  • Foram sim.


    Me ajudaram muito.

    Obrigado à Todos.

    • Marcado como Resposta Roberto Piagem sexta-feira, 25 de fevereiro de 2011 13:12
    terça-feira, 22 de fevereiro de 2011 17:03

Todas as Respostas

  • segue um script básico

    declare @teste int
    set @teste=454
    select right('0000000'+cast(@teste as varchar(10)),5)
    --seu exemplo
    Select right('0000000'+cast(sum(cast(campo as money))/100 as varchar(10)),5) from tabela
    
    
    

    att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    • Marcado como Resposta Roberto Piagem sexta-feira, 25 de fevereiro de 2011 13:12
    quinta-feira, 17 de fevereiro de 2011 18:12
    Moderador
  • Roberto,

    é devido ao tamanho do varchar e a quantidade de caracteres do seu campo money.. o money pode atingir até 19 caracteres.. acredito que o script abaixo deve resolver

    Select right('0000000'+cast(sum(cast(campo as money))/100 as varchar(19)),5) from tabela
    

    att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    • Sugerido como Resposta Eder Costa segunda-feira, 21 de fevereiro de 2011 18:04
    • Marcado como Resposta Roberto Piagem sexta-feira, 25 de fevereiro de 2011 13:12
    quinta-feira, 17 de fevereiro de 2011 18:28
    Moderador
  • Vc quer so a parte inteira da divisão ? se for convert para int ja para eliminar as casas decimais... no mais... existe uma forma de preencher com zeros a esquerda que eu não vejo ninguem usando... mas particulamente eu acho mais rapida...

    RIGHT(X + 10^N, N)

    onde:
    X: Valor Numerico que deseja ser convertido em String
    N: Numero de caracteres de retorno da string

    DECLARE @TABELA TABLE (CAMPO VARCHAR(10))
    INSERT INTO @TABELA VALUES('000100')
    INSERT INTO @TABELA VALUES('000120')
    INSERT INTO @TABELA VALUES('002500')
    
    SELECT RIGHT((SUM(CAST(CAMPO AS INT)) / 100) + 10000000000, 10) FROM @TABELA
    

     

    • Sugerido como Resposta Eder Costa segunda-feira, 21 de fevereiro de 2011 18:04
    • Marcado como Resposta Roberto Piagem sexta-feira, 25 de fevereiro de 2011 13:12
    quinta-feira, 17 de fevereiro de 2011 18:57
    Moderador
  • Olá Roberto!

    Houve algum progresso nesta questão? Os exemplos sugeridos foram úteis?

    att;


    Eder Costa - LATAM Forum Support Engineer
    Microsoft Corporation
    • Marcado como Resposta Roberto Piagem sexta-feira, 25 de fevereiro de 2011 13:12
    segunda-feira, 21 de fevereiro de 2011 18:05
  • Foram sim.


    Me ajudaram muito.

    Obrigado à Todos.

    • Marcado como Resposta Roberto Piagem sexta-feira, 25 de fevereiro de 2011 13:12
    terça-feira, 22 de fevereiro de 2011 17:03