DevGoiás .NET Site
Página Inicial do Fórum Página Inicial do Fórum > Banco de Dados > » SQL Server
  Posts Novos Posts Novos
Procurar o fórum   

Select com sum

 Responder Responder
Autor
Mensagem
  Tópico Procurar Tópico Procurar  Opções do Tópico Opções do Tópico
ajbzagatti Veja o Drop-Down
DevSilver (Novo)
DevSilver (Novo)


Registrado: 30/Novembro/2009
Status Online: Offline
Mensagens: 4
  Citação de  ajbzagatti Citação de   ResponderResposta Link direto para este Post Tópico: Select com sum
    Enviado: 30/Novembro/2009 em 13:44
Olá a todos...

Sou novo aqui no forum e no grupo DEVGOIAS.NET.
Só agora conheci este maravilhoso site, e gostaria de parabenizar todos integrantes.

Sou meio novato em SQL.

Tenho a seguinte tabela: PedidoItem

CodCliente CodProduto Operacao Qtde ValorUnitario valortotal
        1           1      "V"    10          1,00      10,00
        1           2      "V"     1          2,00       2,00
        1           1      "B"     1          1,00       1,00
        2           1      "V"     5          1,00       5,00

Operacao: "V" Venda, "B" Bonificacao

Preciso da soma do campo (valortotal) agrupado por cliente e operacao.

Ex:

Cliente             | Sum(valortotal) as Venda | Sum(Valortotal) as Bonificacao|
1 Cliente 1                      12,00                      1,00
2 Cliente 2                      5,00                      0,00

pensei em algo assim, é possivel ?

Select CodCli,
       SUM(Select SUM(VlTotal) Where CodCli=@CodCli AND Operacao = "V" Group By CodCli) as Venda,
       SUM(Select SUM(VlTotal) Where CodCli=@CodCli AND Operacao = "B" Group By CodCli) as Bonificacao
From PedPen
Group By CodCli

Nao testei o codigo assima.
Será que está certo ?


Abraços,

Angelo.
Voltar para topo
BrunoBatista Veja o Drop-Down
DevSilver (Novo)
DevSilver (Novo)


Registrado: 19/Maio/2009
Status Online: Offline
Mensagens: 30
  Citação de  BrunoBatista Citação de   ResponderResposta Link direto para este Post Enviado: 01/Dezembro/2009 em 20:58
Boa noite,

De SQL Server eu não conheço muito não, mas creio que não precisava fazer duas sub-consultas, não. E como nas sub-consultas já está realizando a soma não precisaria somar novamente, não.

Select CodCli,
       (Select Sum(ValorTotal)
          From PedidoItem P1
        Where P1.CodCli = P2.CodCli
           And P1.Operacao = 'V') AS ValorVenda,
       (Select Sum(ValorTotal)
          From PedidoItem P3
        Where P3.CodCli = P2.CodCli
           And P3.Operacao = 'B') AS ValorBonificacao
From PedidoItem P2

Do jeito que você fez, assim acho que resolve o seu problema.

Atenciosamente,

Bruno Moreira Batista.
Voltar para topo
ajbzagatti Veja o Drop-Down
DevSilver (Novo)
DevSilver (Novo)


Registrado: 30/Novembro/2009
Status Online: Offline
Mensagens: 4
  Citação de  ajbzagatti Citação de   ResponderResposta Link direto para este Post Enviado: 02/Dezembro/2009 em 16:04
Bruno, faltou o Group By CodCli.

Sem o Group By o select me retornava dois registros do mesmo CodCli.

Colocado o Group By funcionou perfeito.
Voce estava brincando com relacao à nao saber muito SQL.(rs)

Muito obrigado, valeu amigo.

Abraços,

Angelo.

Voltar para topo
rogeriofaria Veja o Drop-Down
DevSilver (Novo)
DevSilver (Novo)


Registrado: 11/Junho/2008
Status Online: Offline
Mensagens: 9
  Citação de  rogeriofaria Citação de   ResponderResposta Link direto para este Post Enviado: 02/Dezembro/2009 em 17:52
Pode ser assim tambem:


SELECT
    CODCLI,
    SUM( CASE WHEN OPERACAO = 'V' THEN VALORTOTAL ELSE 0 END) AS VALORVENDA,
    SUM( CASE WHEN OPERACAO = 'B' THEN VALORTOTAL ELSE 0 END) AS VALORBONIFICACAO

FROM
    PEDIDOITEM

GROUP BY
    CODCLI


Voltar para topo
BrunoBatista Veja o Drop-Down
DevSilver (Novo)
DevSilver (Novo)


Registrado: 19/Maio/2009
Status Online: Offline
Mensagens: 30
  Citação de  BrunoBatista Citação de   ResponderResposta Link direto para este Post Enviado: 03/Dezembro/2009 em 06:08
Bom dia,

de SQL eu conheço um pouco, de algumas coisas específicas do SQL Server igual ao Rogério citou que eu não sabia. Conheço mais do banco de dados Oracle, nele eu saberia te dar uma solução igual ao do Rogério. Mas está ai um pouco mais fácil que citei.

Atenciosamente,

Bruno Moreira Batista.
Voltar para topo
ajbzagatti Veja o Drop-Down
DevSilver (Novo)
DevSilver (Novo)


Registrado: 30/Novembro/2009
Status Online: Offline
Mensagens: 4
  Citação de  ajbzagatti Citação de   ResponderResposta Link direto para este Post Enviado: 11/Dezembro/2009 em 11:13
Olá,

Problema resolvido, funcionou perfeito.

Gostaria de agradecer muito aos amigos, Bruno e Rogerio pelas dicas.
Valeu moçada...

Att,

Angelo.
Voltar para topo
 Responder Responder

Ir para Permissões do Fórum Veja o Drop-Down

Bulletin Board Software by Web Wiz Forums® version 9.06
Copyright ©2001-2007 Web Wiz

Pagina aberta em 1.766 segundos..