我有一个带有月份和金钱列的输入数据表。我的目标是获得一个可以绑定到dgv(表或列表)的对象,其中的钱按月分组。
在SQL中,我将用
完成此任务Select month, sum(money) from table
group by month
我尝试过(根据this question)
Public Function Get Overview(...)
dim query =
from dt In _dataset.Table.AsEnumerable()
Group By dt.Week
Into Test = Sum(dt.money)
Select Test
Return Test
End Function
我不能运行这个但返回类型是IEnumerable(of Double)
所以对我来说它看起来我没有得到我可以绑定到我的dgv的表或列表。谁能告诉我我的查询有什么问题?
编辑: 这是Linq to数据集。
声明和实例
Privat _dataset as Dataset1
Private _adapter as New Dataset1TableAdapters.Table
_dataset = New Dataset1
_adapter.Fill(_dataset.Table)
答案 0 :(得分:2)
使用Select Test
,您只需明确选择money
列的汇总值。
您的查询应如下所示:
Dim query = From dt In _dataset.Table.AsEnumerable()
Group By week = dt.Week
Into result = Sum(dt.money)
请注意,这会产生任何类型的IEnumerable(Of ...)
。如果要在当前方法之外使用结果,请创建表示此结果的类型或使用例如Tuple
类,如:
Dim query = From dt In _dataset.Table.AsEnumerable()
Group By week = dt.Week
Into result = Sum(dt.money)
Select Tuple.Create(week, result)
这会产生IEnumerable(Of Tuple(Of TheTypeOfWeek, TheTypeOfMoney))
,您可以绑定到您的DGV。