none
Alterar o nome SUM para Total. RRS feed

  • Pergunta

  • Boa noite pessoal, estou com o select abaixo, ele roda perfeitamente e traz o resultado que quero, porém gostaria de saber como eu fazer para mudar o nome SUM. Quando ele traz o valor SUM que é a soma dos campos vr_doc_mn, gostaria que aparecesse o nome "Total'

    use ddes950
    go
    select aa_doc, nr_doc, vr_doc_mn, cd_ar_opr, cd_ctr,  nr_ope, nr_fch_ope, cd_nat_jur, cd_tp_mov
     from ddes950..t950dcto
     
    where aa_doc in (2010)
    and nr_doc in ('3452','3256')
    order by vr_doc_mn
    compute sum (vr_doc_mn)

     

    aa_doc nr_doc vr_doc_mn cd_ar_opr cd_ctr nr_ope nr_fch_ope cd_nat_jur cd_tp_mov
    2010 3452 251.87 1 B000002501 1 0 1 C
    2010 3256 436.52 1 A800176901 1 0 1 C

    sum

    688.39

     (3 row(s) affected)


    Luis Antonio
    quinta-feira, 1 de abril de 2010 22:12

Todas as Respostas

  • Vc tentou utilizar o "AS"?

    compute sum (vr_doc_mn) As Total 
    segunda-feira, 5 de abril de 2010 16:43
  • Boa tarde Rodrigo Moura, sim tentei é apresentada a mensagem abaixo. Coloquei também aspas simples, "Total'

    Msg 156, Level 15, State 1, Line 6

    Incorrect syntax near the keyword 'as'.


    Luis Antonio
    segunda-feira, 5 de abril de 2010 17:26
  • tente com aspas duplas e tambpem com aspas simples.

     

    ali em cima vc escreveu "total' com aspa dupla no começo e simples no final :S

    segunda-feira, 5 de abril de 2010 20:32
  • Tentei Rodrigo, tanto simples como duplas.
    Luis Antonio
    segunda-feira, 5 de abril de 2010 21:11
  • Amigo, e teria que usar exatamente a clausula compute?
    terça-feira, 6 de abril de 2010 11:38
  • Necessariamente não Rodrigo, poderia usar outras clausulas, estou trabalhando com clausula compute em outra consultas, achei interessante essa por não conseguir alterar da forma como quero.
    Luis Antonio
    terça-feira, 6 de abril de 2010 15:15
  • use ddes950
    go 
    select aa_doc, nr_doc, vr_doc_mn, cd_ar_opr, cd_ctr,  nr_ope, nr_fch_ope, cd_nat_jur, cd_tp_mov, sum(vr_doc_mn) as Total
     from ddes950..t950dcto 
      where aa_doc in (2010) 
    and nr_doc in ('3452','3256')
    order by vr_doc_mn
    

    Vc n poderia fazer essa consulta assim?

    Colocando o sum dentro do select e renomeando o mesmo.

     

    terça-feira, 6 de abril de 2010 15:20
  • Inserir conforme sua orientação, porém apresentou erro ao executar no GROUP BY, inserir ficando assim, só que ele me repete o valor informado no campo vr_doc_mn. O que quero na verdade é somas do campo vr_doc_mn.

    use

    ddes950
     go
      select aa_doc, nr_doc, vr_doc_mn, cd_ar_opr,
               cd_ag, cd_ctr, nr_ope, nr_fch_ope,
               cd_nat_jur
    , cd_tp_mov, 
        
    sum (vr_doc_mn) 
       
     as Total
      from ddes950..t950dcto
       where aa_doc
         in (2010)
      
    and nr_doc
         in ('3452','3256')
     
    group by aa_doc, nr_doc, vr_doc_mn, cd_ar_opr,
                  
    cd_ag, cd_ctr, nr_ope, nr_fch_ope,
                  
    cd_nat_jur, cd_tp_mov
      
    order by vr_doc_mn


    Luis Antonio
    terça-feira, 6 de abril de 2010 16:44
  • use
    
    ddes950
     go 
      select aa_doc, nr_doc, vr_doc_mn, cd_ar_opr, 
               cd_ag, cd_ctr, nr_ope, nr_fch_ope, 
               cd_nat_jur, cd_tp_mov
       into #tmp
      from ddes950..t950dcto 
       where aa_doc
         in (2010) 
       and nr_doc
         in ('3452','3256')
       order by vr_doc_mn
    
    select sum(vr_doc_mn) from #tmp

    Amigo, a solução que eu consegui fazer aqui foi essa.

     

    terça-feira, 6 de abril de 2010 17:06
  • Realizei procedimento no qual orientou, porém foi apresentado somente o valor Total "Resultado da Soma", sem mostrar os valores do documento.

    ---------------------------------------

    3142.01

    (1 row(s) affected)


    Luis Antonio
    terça-feira, 6 de abril de 2010 18:34
  • Pensei que interessasse só a somatoria.

    Para uma solução rapida. Com certeza não é  amelhor.

    use

    ddes950
    go
      select aa_doc, nr_doc, vr_doc_mn, cd_ar_opr,
               cd_ag, cd_ctr, nr_ope, nr_fch_ope,
               cd_nat_jur, cd_tp_mov
       into #tmp
      from ddes950..t950dcto
       where aa_doc
         in (2010)
       and nr_doc
         in ('3452','3256')
       order by vr_doc_mn

    select * from #tmp

    go

    select sum(vr_doc_mn) from #tmp

    terça-feira, 6 de abril de 2010 18:43
  • Ola,

    É possível trocar a clausula COMPUTE por ROLLUP ?

    No exemplo do HELP do sql ficaria assim:

    SELECT CASE WHEN (GROUPING(Item) = 1) THEN 'ALL'
                ELSE ISNULL(Item, 'UNKNOWN')
           END AS Item,
           CASE WHEN (GROUPING(Color) = 1) THEN 'ALL'
                ELSE ISNULL(Color, 'UNKNOWN')
           END AS Color,
           SUM(Quantity) AS QtySum
    FROM Inventory
    GROUP BY Item, Color WITH ROLLUP
    
    Item                 Color                QtySum                     
    -------------------- -------------------- -------------------------- 
    Chair                Blue                 101.00                     
    Chair                Red                  210.00                     
    Chair                ALL                  311.00                     
    Table                Blue                 124.00                     
    Table                Red                  223.00                     
    Table                ALL                  347.00                     
    ALL                  ALL                  658.00                     
    
    

    E ai voce teria que fazer uma alteração na aplicação que trata os resultados para tratar a ultima linha como TOTAL

    Espero ter ajudado.

    Abraço


    hã?
    • Sugerido como Resposta DTito quinta-feira, 8 de abril de 2010 21:09
    quarta-feira, 7 de abril de 2010 17:23
  • Obrigado DTito, vou implementar.


    Luis Antonio
    quarta-feira, 7 de abril de 2010 18:20