0

我想编写一个查询,从另一个表中接收有关客户及其订单的信息并以这种方式显示它们:

Customer 1
 Customer 1 Order 1
 Customer 1 Order 2
Customer 2
 Order 1 Customer 2
Customer 3
 Order 1 Customer 3
....

我想按客户分页。例如 - 如果我定义每页的项目 = 10,我想显示 10 位客户,无论他们有多少订单。

我准备了这个查询,但我认为它不能正常工作,我不知道如何解决这个..

var result = db.Page<Customer>(pageNumber, 10, "SELECT c.*, o.* FROM Customers c JOIN Orders o 
ON o.Id = c.Id");
4

1 回答 1

1

您可以使用dense_rank()和过滤:

SELECT c.*, o.*, DENSE_RANK() OVER (ORDER BY c.id) as seqnum
FROM Customers c JOIN 
     Orders o 
     ON o.Customer_Id = c.Id;

您需要WHERE用于过滤,而不是LIMITFETCH或其他。

于 2020-10-08T13:48:19.977 回答