LINQ查询-显示具有订单数量的客户,包括没有订单的客户

男性

在下面的LINQ查询中,我需要显示All已下订单总数的客户,包括尚未下任何订单的客户:

型号

Public class Customer
{
   public int CustomerId { get; set; }
   public string Name{ get; set; }
}

Public class Order
{
   public int OrderId { get; set; }
   public int CustomerId { get; set; }
}

LINQ查询:问题:如何显示ALL客户(包括没有订单的客户)和每个客户的订单总数(对于那些客户ID不在“订单”表中的客户,该值为零)

var Query1 = from c in Customers
             join o in Orders into co
             from t in co.DefaultIfEmpty()
             select new {CustomerID = c.CustomerId, OrderID = (t == null ? 0 : t.OrderId)};
y州

基本上,您需要在“客户”表和“客户订单”表之间进行左联接,然后对结果进行分组以计算每个客户的订单。

假设您有一个这样的班级

public class CustomerOrder
{
  public int CustomerId { set; get; }
  public int? OrderId { set; get; }
}

此类用于存储左连接结果的每个项目

现在,您需要首先执行LEFT JOIN并将其结果投影到CustomerOrder类对象列表中,然后在该对象之上执行GroupBy

var usersWithCount = (from c in db.Customers
    join o in db.Orders on c.CustomerId equals o.CustomerId 
    into result
    from sub in result.DefaultIfEmpty()
         select new CustomerOrder{  OrderId= sub!=null ? sub.OrderId :(int?) null,
                                    CustomerId = u.CustomerId }
) // Here we have the left join result.
.GroupBy(g => g.CustomerId , (k, orders) => new { 
                    CustomerId = k, 
                    OrderCount = orders.Count(t=>t.OrderId !=null)}).ToList();

存储的结果usersWithCount将是带有CustomerIdOrderCount属性的匿名对象的集合

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有订单日期范围的SQL客户订单查询

来自分类Dev

具有订单日期范围的SQL客户订单查询

来自分类Dev

按具有收入的订单数量分组的客户数量

来自分类Dev

MySQL查询不会返回所需的结果。没有订单的客户不显示

来自分类Dev

查询每个客户的订单总数和已发送订单总数(如果没有则返回0)

来自分类Dev

使用Linq获取所有客户的最后订单日期

来自分类Dev

使用Linq获取所有客户的最后订单日期

来自分类Dev

Magento导入具有链接订单数据的客户数据

来自分类Dev

SQL Server:显示订单数量超过指定客户的客户列表

来自分类Dev

SQL查询:如何获取地址列表和每个地址的订单数量

来自分类Dev

SAP B1 9.1 打开销售订单数量查询

来自分类Dev

没有订单的客户

来自分类Dev

查找每个客户的订单数

来自分类Dev

没有列名的 Linq 查询

来自分类Dev

具有多个订单的Android Firebase查询

来自分类Dev

DAX 代码用于计算具有 n 个总单位的订单数量

来自分类Dev

从LINQ查询显示信息

来自分类Dev

在示例中使用子查询(使用条件查找来自客户的所有订单)

来自分类Dev

查询以选择特定范围内的订单总数的所有客户

来自分类Dev

在示例中使用子查询(使用条件查找来自客户的所有订单)

来自分类Dev

子查询以查找已下订单的客户

来自分类Dev

创建查询以返回客户订单的平均交易

来自分类Dev

MySQL查询以选择客户的总订单

来自分类Dev

如何通过WooCommerce中的时间限制来限制每个客户的订单数量

来自分类Dev

我如何查看员工选择的特定日期每个客户下的订单数量?

来自分类Dev

Linq查询使用分组依据并具有

来自分类Dev

Linq查询具有分组依据

来自分类Dev

具有多个GroupBy的Linq查询

来自分类Dev

具有子属性的复杂 linq 查询

Related 相关文章

  1. 1

    具有订单日期范围的SQL客户订单查询

  2. 2

    具有订单日期范围的SQL客户订单查询

  3. 3

    按具有收入的订单数量分组的客户数量

  4. 4

    MySQL查询不会返回所需的结果。没有订单的客户不显示

  5. 5

    查询每个客户的订单总数和已发送订单总数(如果没有则返回0)

  6. 6

    使用Linq获取所有客户的最后订单日期

  7. 7

    使用Linq获取所有客户的最后订单日期

  8. 8

    Magento导入具有链接订单数据的客户数据

  9. 9

    SQL Server:显示订单数量超过指定客户的客户列表

  10. 10

    SQL查询:如何获取地址列表和每个地址的订单数量

  11. 11

    SAP B1 9.1 打开销售订单数量查询

  12. 12

    没有订单的客户

  13. 13

    查找每个客户的订单数

  14. 14

    没有列名的 Linq 查询

  15. 15

    具有多个订单的Android Firebase查询

  16. 16

    DAX 代码用于计算具有 n 个总单位的订单数量

  17. 17

    从LINQ查询显示信息

  18. 18

    在示例中使用子查询(使用条件查找来自客户的所有订单)

  19. 19

    查询以选择特定范围内的订单总数的所有客户

  20. 20

    在示例中使用子查询(使用条件查找来自客户的所有订单)

  21. 21

    子查询以查找已下订单的客户

  22. 22

    创建查询以返回客户订单的平均交易

  23. 23

    MySQL查询以选择客户的总订单

  24. 24

    如何通过WooCommerce中的时间限制来限制每个客户的订单数量

  25. 25

    我如何查看员工选择的特定日期每个客户下的订单数量?

  26. 26

    Linq查询使用分组依据并具有

  27. 27

    Linq查询具有分组依据

  28. 28

    具有多个GroupBy的Linq查询

  29. 29

    具有子属性的复杂 linq 查询

热门标签

归档