Linq to SQL从查询返回多个计数而不返回正确的结果

约翰

我有一个Linq to SQL查询,我想返回三个行数计数。一个用于不等于零的字段(HaveCount),另一个用于不等于零的字段(WantCount),以及另一个不等于零的字段(SaleCount)。

这是我的查询...

var counts = (from a in dc.tblMemberIssues
              join b in dc.vwMembers on a.MemberID equals b.MemberID
              where a.IssueID == issueID
              group a by new { a.HaveCount, a.WantCount, a.SaleCount } into d
              select new
              {
                  HaveCount = d.Count(e => e.HaveCount != 0),
                  WantCount = d.Count(e => e.WantCount != 0),
                  SaleCount = d.Count(e => e.SaleCount != 0)
              }).First();

但是,它不会返回预期的结果。我知道分组是错误的,但是我不确定如何获得期望的结果。

例如,如果查询的第一部分(在分组之前)返回了这两行...

---------------------------------
HaveCount | WantCount | SaleCount
---------------------------------
1         | 0         | 1
1         | 1         | 0

我的查询现在正在返回...(即仅一行)

1         | 0         | 1

但是我希望它返回所有行的计数...

2         | 1         | 1

我需要对查询做些什么才能使其按我需要的方式工作?

注意 尝试仅通过单个数据库查询来执行此操作。

马格努斯

您不应该对计数中的列进行分组。如果我对您的理解正确,那么您就不想分组,但是Linq不允许这样true分组。(或任何其他常量)将查询更改为:

var counts = (from a in dc.tblMemberIssues
              join b in dc.vwMembers on a.MemberID equals b.MemberID
              where a.IssueID == issueID
              group a by true into d
              select new
              {
                  HaveCount = d.Count(e => e.HaveCount != 0),
                  WantCount = d.Count(e => e.WantCount != 0),
                  SaleCount = d.Count(e => e.SaleCount != 0)
              }).First();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

返回LINQ查询结果

来自分类Dev

Linq to SQL查询未返回正确的项目

来自分类Dev

无法从查询返回linq结果

来自分类Dev

EntityFramework LINQ查询计数失败,但查询返回结果。如何优化LINQ查询?

来自分类Dev

MS Graph-LINQ查询返回不正确的结果

来自分类Dev

Linq 查询不返回与 SQL 查询相同的数据

来自分类Dev

LINQ和SQL中看似等效的查询返回不同的结果

来自分类Dev

Linq查询。包含不返回任何记录

来自分类Dev

如果linq查询计数返回零,则返回值1

来自分类Dev

LINQ返回空结果

来自分类Dev

Linq 返回分组结果

来自分类Dev

循环并更新LINQ查询,返回多个对象

来自分类Dev

从Linq查询返回数组

来自分类Dev

PHP的SQL查询不返回正确的结果

来自分类Dev

PHP的SQL查询不返回正确的结果

来自分类Dev

当WHERE子句具有特殊字符时,LINQ查询不返回结果

来自分类Dev

使用LINQ to SQL查询返回数组

来自分类Dev

复杂的LINQ to SQL查询返回List <T>

来自分类Dev

不包含LINQ的LINQ返回null

来自分类Dev

LINQ Select和哪里不正确返回任何结果?

来自分类Dev

为什么此 Linq 查询返回的结果与 SQL 等效项不同?

来自分类Dev

结合两个仅返回结果不同的LINQ查询

来自分类Dev

需要linq查询仅返回最后100个结果

来自分类Dev

返回linq查询的结果时方法的输出类型是什么?

来自分类Dev

LINQ Join和Sum查询返回重复的结果

来自分类Dev

检查 linq 查询是否返回结果的最快方法

来自分类Dev

找不到linq查询输出的正确返回类型

来自分类Dev

Linq查询返回重复项

来自分类Dev

Linq to XML查询返回null