sqlserver 订单汇总中有多条明细连表查询后有重复通过筛选订单添加日期大于当前日期且小于失效日期后再根据查询结果实现分页
时间: 2024-06-12 21:06:14 浏览: 16
以下是一个示例查询:
```
DECLARE @Today DATE = GETDATE()
DECLARE @PageSize INT = 10
DECLARE @PageNum INT = 1
SELECT *
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY OrderDate DESC) AS RowNumber,
o.OrderID,
o.OrderDate,
o.ExpirationDate,
SUM(od.Quantity * od.Price) AS TotalPrice
FROM Orders o
JOIN OrderDetails od ON o.OrderID = od.OrderID
WHERE o.OrderDate > @Today AND o.ExpirationDate < @Today
GROUP BY o.OrderID, o.OrderDate, o.ExpirationDate
) AS OrderSummary
WHERE RowNumber BETWEEN (@PageNum - 1) * @PageSize + 1 AND @PageNum * @PageSize
```
这个查询使用了ROW_NUMBER()函数来为结果集中的每个行分配一个行号,然后根据行号进行分页。WHERE子句过滤出了订单添加日期大于当前日期且小于失效日期的订单,并且使用了SUM()函数计算了每个订单的总价。最后,外层SELECT语句根据行号进行分页。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)