ID为重复的Total DataTable列

时间:2012-11-22 13:06:51

标签: vb.net full-text-search

我正在使用全文搜索在MSSQL中搜索表。此表包含支持事件的摘要和内容。通过使EVENT_TYPE为Open来识别摘要。

我想搜索所有事件类型,因此我在包含相关文本(COMMENTS)的字段上设置了全文搜索。现在我只想在屏幕上显示摘要行(DataGridView),因为一旦选择了摘要行,就会访问其他更新。

我只想要显示EVENT_TYPE为'Open'的行,所以我正在使用:

dt.DefaultView.RowFilter = " [EVENT_TYPE] = 'Open'"

我有一个名为Match的列,它给出了每个结果的百分比匹配,我如何组合具有相同ID的所有行的结果?

即为所有具有重复ID号的行添加所有匹配分数,添加到新列?

ID | EVENT_TYPE| match
123     Open       33
123     Closed     47
123     Update     12

理想情况下会显示为:

ID | EVENT_TYPE| match | matchTotal
123     Open       33        92

我认为可能是使用数据表计算的情况,但它看起来并不那么容易,我认为不可能以所需的方式进行过滤。

dt.Compute("Sum(Match)", "[EVENT_TYPE] = 'Open' AND Duplicate(INCIDENT_ID)")

1 个答案:

答案 0 :(得分:0)

您可以尝试LINQ:

Dim q = From p In dt
Group p By tID = p(0) _
Into matchTotal= Sum(Convert.ToDouble(p(2))) _
Select tID, totalForType
'Where dt is your original datatable

我知道这会产生这样的结果:

 ID |  matchTotal
 123       92

但我为你提供了一个起点。