Linq to SQL select distinct 和 sum
Linq to SQL select distinct and sum
我有一个 table 用于保存产品 QC 的每日统计数据。我需要制作一份关于哪些产品的每周报告 passed/failed QC。
我可以使用以下方法获取数据:
Dim productsPassed = (From p In dc.tblProductStats
Where p.StatDate >= startDate And p.StatDate <= endDate And p.Status = "PASS"
Order By p.Product)
由于这是一个每日统计列表,我通过使用 p.Product 和 p.PCount 列
得到以下信息
ASD 1
自闭症 1
自闭症谱系障碍 4
FGG 1
FGG 5
头盔显示器 1
联合会 1
JWC 3 ....等
我需要这样:
自闭症 6
FGG 6
头盔显示器 1
JWC 4 ....
我试过使用 Select p.Product Distinct 但不知道如何总结 p.PCount
的计数
感谢任何帮助。
更新
根据 Ric 的代码,我尝试进行转换,以便我仍然有一个列表,稍后我使用 For Each product In productsPassed 并使用 StringBuilder 构建一个 html table。
我现在的密码是
Dim ProductsPassed = (From p In dc.tblProductStats
Where (Function(p) p.StatDate >= ReportStartDate AndAlso p.StatDate <= ReportEndDate AndAlso p.PStatus = "PASS")
Group By (Function(p) p.Product)
Select (Function(p) New With {.Product = p.Key,
.PCount = p.Sum(Function(item) item.PCount)}))
最初我有 GROUP 并且 VS 抱怨它期望 BY 所以我添加了它,现在它抱怨它期望一个 进入。我也不确定 item 来自哪里。
试试这个(未经测试并冒险猜测您的结构):
Dim ProductsPassed = dc.tblProductStats.
Where(Function(p) p.StatDate >= startDate AndAlso
p.StatDate <= endDate AndAlso p.Status = "PASS").
GroupBy(Function(p) p.Product).
Select(Function(p) New With {
.Product = p.Key,
.Count = p.Sum(Function(item) item.PCount)
})
使用我编写的一些示例 类 产生以下输出
我有一个 table 用于保存产品 QC 的每日统计数据。我需要制作一份关于哪些产品的每周报告 passed/failed QC。
我可以使用以下方法获取数据:
Dim productsPassed = (From p In dc.tblProductStats
Where p.StatDate >= startDate And p.StatDate <= endDate And p.Status = "PASS"
Order By p.Product)
由于这是一个每日统计列表,我通过使用 p.Product 和 p.PCount 列
得到以下信息ASD 1 自闭症 1 自闭症谱系障碍 4 FGG 1 FGG 5 头盔显示器 1 联合会 1 JWC 3 ....等
我需要这样: 自闭症 6 FGG 6 头盔显示器 1 JWC 4 ....
我试过使用 Select p.Product Distinct 但不知道如何总结 p.PCount
的计数感谢任何帮助。
更新
根据 Ric 的代码,我尝试进行转换,以便我仍然有一个列表,稍后我使用 For Each product In productsPassed 并使用 StringBuilder 构建一个 html table。
我现在的密码是
Dim ProductsPassed = (From p In dc.tblProductStats
Where (Function(p) p.StatDate >= ReportStartDate AndAlso p.StatDate <= ReportEndDate AndAlso p.PStatus = "PASS")
Group By (Function(p) p.Product)
Select (Function(p) New With {.Product = p.Key,
.PCount = p.Sum(Function(item) item.PCount)}))
最初我有 GROUP 并且 VS 抱怨它期望 BY 所以我添加了它,现在它抱怨它期望一个 进入。我也不确定 item 来自哪里。
试试这个(未经测试并冒险猜测您的结构):
Dim ProductsPassed = dc.tblProductStats.
Where(Function(p) p.StatDate >= startDate AndAlso
p.StatDate <= endDate AndAlso p.Status = "PASS").
GroupBy(Function(p) p.Product).
Select(Function(p) New With {
.Product = p.Key,
.Count = p.Sum(Function(item) item.PCount)
})
使用我编写的一些示例 类 产生以下输出