0

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

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

我只想要显示 EVENT_TYPE 为“打开”的行,所以我使用:

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)")
4

1 回答 1

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

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

于 2012-11-22T15:28:43.670 回答