将账单数量统计到数据表中
Count Number of Bills into DataTable
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
正如@jarlh 所说,使用 group by 就可以了
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
结果
BillId BillValue n
--------------------
1 4 1
1 5 3
1 10 3
1 20 1
如果您正在寻找 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
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
正如@jarlh 所说,使用 group by 就可以了
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
结果
BillId BillValue n
--------------------
1 4 1
1 5 3
1 10 3
1 20 1
如果您正在寻找 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