Pracując w C# z danymi pobierasz je do DataSet, a dokładniej do DataTable. Pobieranie polega na wykonaniu odpowiedniego zapytania w bazie danych. Niekiedy okazuje się, że dane należy zaprezentować lub przetworzyć nie tylko z dokładnością do rekordów, ale także w postaci zagregowanej, np. u dołu tabeli umieścić wiersz podsumowania.
Czy takie działanie wiązę się z koniecznością wykonania kolejnego zapytania na bazie danych? Otóż nie. DataTable ma specjalną metodę Compute, która potrafi wykonać funkcję agregującą na danych znajdujących się już w DataTable. Aby wyzanczyć sumę możesz wykonać:
object sum = table.Compute("Sum(Quantity)"); decimal sumQuantity = Convert.ToDecimal(sum);
Metoda Compute pozwala także przekazać do bazy danych parametr określający filtr, który należy zastosować wykonując obliczenia funkcji agregującej:
object sum = table.Compute("Sum(Quantity)", "ProductID = 5"); decimal sumQuantity = Convert.ToDecimal(sum);
Jak dla mnie duże ułatwienie, więc z tego korzystam. A Ty?