Visual Studio > Fóruns do Visual Studio > C# > Somar colunas do banco de dados
Fazer uma PerguntaFazer uma Pergunta
 

RespondidoSomar colunas do banco de dados

  • quinta-feira, 5 de novembro de 2009 18:47marcelocmir Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Boa tarde pessoal,
    Tenho um banco de dados onde preciso somar valore como agregação e cumulativos. O problema é que não estou conseguindo instalar o SQL Server e por isso não consigo programar direto do banco de dados. Me parece que é problema de hardware! Ainda estou por resolver. Gostaria de saber se tem como eu usar o SQL Server Compact 3.5 para calcular o total cumulativo? A propósito, como eu faço isso? Posso usar comandos do C# para calculas?

    Abraços.

Respostas

  • quinta-feira, 5 de novembro de 2009 19:03William John Adam Trindade Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Respondido
    Se vc procura a query:
    Select Descricao, Sum(Quatidade) as Qtde from Tabela group by Descricao

    Se vc quer fazer a soma direto no C#, use o linq:


    public static void Linq80()
    {
       List products = new List { { ProductID = 1, ProductName = "Chai", Category = "Beverages", UnitPrice = 18.0000M, UnitsInStock = 39 }, { ProductID = 2, ProductName = "Chang", Category = "Beverages", UnitPrice = 19.0000M, UnitsInStock = 17 }, { ProductID = 3, ProductName = "Aniseed Syrup", Category = "Condiments", UnitPrice = 10.0000M, UnitsInStock = 13 }, { ProductID = 4, ProductName = "Chef Anton's Cajun Seasoning", Category = "Condiments", UnitPrice = 22.0000M, UnitsInStock = 53 }, { ProductID = 5, ProductName = "Chef Anton's Gumbo Mix", Category = "Condiments", UnitPrice = 21.3500M, UnitsInStock = 0 }, { ProductID = 6, ProductName = "Grandma's Boysenberry Spread", Category = "Condiments", UnitPrice = 25.0000M, UnitsInStock = 120 }, { ProductID = 7, ProductName = "Uncle Bob's Organic Dried Pears", Category = "Produce", UnitPrice = 30.0000M, UnitsInStock = 15 }}

       var categories =
          from p in products
          group p by p.Category into g
          select new { Category = g.Key, TotalUnitsInStock = g.Sum(p => p.UnitsInStock) }; 

         foreach (var n in categories) {
                    Console.WriteLine(n);

    }

    Att

    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------
    Téléphone: (819) 379-3446
    Télécopieur: (819) 379-3449
    triw@sogi.com.no_spam
    ----------------------------------------------------------
    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
  • sexta-feira, 6 de novembro de 2009 14:27William John Adam Trindade Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Respondido
    O linq praticamente isola o banco. Voce pode ler uma tabela, transformar em uma lista e depois usar o linq. Mas dependendo do caso, é canhao pra matar mosquito. Veja bem suas necessidades, as vezes utilizar a query é muito mais facil!

    Att
    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------
    Téléphone: (819) 379-3446
    Télécopieur: (819) 379-3449
    triw@sogi.com.no_spam
    ----------------------------------------------------------
    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)

Todas as Respostas

  • quinta-feira, 5 de novembro de 2009 19:03William John Adam Trindade Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Respondido
    Se vc procura a query:
    Select Descricao, Sum(Quatidade) as Qtde from Tabela group by Descricao

    Se vc quer fazer a soma direto no C#, use o linq:


    public static void Linq80()
    {
       List products = new List { { ProductID = 1, ProductName = "Chai", Category = "Beverages", UnitPrice = 18.0000M, UnitsInStock = 39 }, { ProductID = 2, ProductName = "Chang", Category = "Beverages", UnitPrice = 19.0000M, UnitsInStock = 17 }, { ProductID = 3, ProductName = "Aniseed Syrup", Category = "Condiments", UnitPrice = 10.0000M, UnitsInStock = 13 }, { ProductID = 4, ProductName = "Chef Anton's Cajun Seasoning", Category = "Condiments", UnitPrice = 22.0000M, UnitsInStock = 53 }, { ProductID = 5, ProductName = "Chef Anton's Gumbo Mix", Category = "Condiments", UnitPrice = 21.3500M, UnitsInStock = 0 }, { ProductID = 6, ProductName = "Grandma's Boysenberry Spread", Category = "Condiments", UnitPrice = 25.0000M, UnitsInStock = 120 }, { ProductID = 7, ProductName = "Uncle Bob's Organic Dried Pears", Category = "Produce", UnitPrice = 30.0000M, UnitsInStock = 15 }}

       var categories =
          from p in products
          group p by p.Category into g
          select new { Category = g.Key, TotalUnitsInStock = g.Sum(p => p.UnitsInStock) }; 

         foreach (var n in categories) {
                    Console.WriteLine(n);

    }

    Att

    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------
    Téléphone: (819) 379-3446
    Télécopieur: (819) 379-3449
    triw@sogi.com.no_spam
    ----------------------------------------------------------
    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
  • sexta-feira, 6 de novembro de 2009 13:53marcelocmir Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Valeu William vou tentar com o Linq. Mas minha dúvida é: eu posso usar com qualquer BD, tipo a versão SQL Compact 3.5?

    Abraços.
  • sexta-feira, 6 de novembro de 2009 14:27William John Adam Trindade Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Respondido
    O linq praticamente isola o banco. Voce pode ler uma tabela, transformar em uma lista e depois usar o linq. Mas dependendo do caso, é canhao pra matar mosquito. Veja bem suas necessidades, as vezes utilizar a query é muito mais facil!

    Att
    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------
    Téléphone: (819) 379-3446
    Télécopieur: (819) 379-3449
    triw@sogi.com.no_spam
    ----------------------------------------------------------
    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)