How can I get a sum for the column "pieces" in a datatable?

McSteel picture McSteel · Oct 26, 2011 · Viewed 10.8k times · Source

How can I get a sum for the column "pieces" in a datatable? Say I had the following table. How can I calculate the "total" pieces for article="milk" and artno="15"?

Columns:   article     artno    pieces
Rows:
1          milk        15       1
2          water       12       1
3          apple       13       2
4          milk        15       1
5          milk        16       1
6          bread       11       2
7          milk        16       4

The Result of the my new DataTable should be this:

Columns:   article     artno    pieces
Rows:
1          bread       11       2
2          water       12       1
3          apple       13       2
4          milk        15       2
5          milk        16       5

My Code:

foreach (DataRow foundDataRow in foundRows1)
{
    int i = 0;
    foreach (DataRow dataRow in foundRows2)
    {
        if (object.Equals(dataRow.ItemArray[0], foundDataRow.ItemArray[0])
            && object.Equals(dataRow.ItemArray[3], foundDataRow.ItemArray[3]))
        {
            i = i + Convert.ToInt16(dataRow.ItemArray[4]);
        }
    }
    Debug.Print(i.ToString());
}

Sorry, but i'm new DataBase developer and my english speak language is not so good.

Answer

Ani picture Ani · Oct 26, 2011

Using the DataTable.Compute method, you can do:

int sum = (int)table.Compute("Sum(pieces)", "article = 'milk' AND artno='15'");