计算DataTable中的票据数量

时间:2018-03-01 13:44:15

标签: sql counting

DataTable包含两列BillId和BillValues。 BillValue可以是任意数字(1到1000)。 我想计算出现在DataTable上的5个账单,10个账单和所有其他账单的总数,并将它们添加到字典中。在这方面,请指教

BillId , BillValue
1          5
1          10
1          10
1          5
1          20
1          5
1          4
1          10

2 个答案:

答案 0 :(得分:1)

就像@jarlh已经说过的那样,使用group by会做的伎俩

<%init>
    my $message = 'random content';
    my $encryptedMsg = Digest::SHA::sha256_hex($message);
</%init>

<强>结果

DECLARE @t TABLE (BillID INT, BillValue INT)
INSERT INTO @t VALUES
(1,5),
(1,10),
(1,10),
(1,5),
(1,20),
(1,5),
(1,4),
(1,10)

SELECT BillID, BillValue, COUNT(BillId) AS n
FROM    @t
GROUP BY BillID, BillValue

答案 1 :(得分:0)

如果您正在寻找C#解决方案

        DataTable dt = new DataTable();
        // Assuming you fill Datatable first
        Dictionary<int, int> billCounter = new Dictionary<int, int>();
        foreach(DataRow dr in dt.Rows)
        {
            int bill = int.Parse(dr["BillValue"].ToString());
            if (billCounter.ContainsKey(bill))
                billCounter[bill]++;
            else
                billCounter.Add(bill, 1);
        }
        // bill counter is filled with unique counters