-1

我有两个表 order 和 ordersdetail 有数百万行..

表:

订单- id(主键)、金额、日期(索引)

orderdeails - id(主键),skunitid,数量,order_id(索引)

一个订单有多个订单详情...

询问:

Select Sum(orders.amount),SUM(ordersdetails.quantity)
from orders join orderdetails on ordersdetail.order_id = orders.id 
where {{conditios on date column of order table}}

我知道它的错误查询,我想要单个查询(单次迭代)中的数量和数量之和的数据总和,但是当我使用连接订单的表数量时会出现很多次。我在订单表的日期列上有索引,所以我必须从订单表开始查询(表中的百万行。)

我必须需要有效的方法..

4

1 回答 1

0
Select 
   Sum(Order.Amount),
   Sum(OrderTotals.OrderQuantity)
From
   Order
Inner join
( 
   Select
       OrderDetails.OrderID,
       Sum(OrderDetails.Quantity) as OrderQuantity
   From
       OrderDetails 
   Where
       OrderDetails.OrderID in
       (Select OrderID From Order where Order.Date between @x and @y)

   Group by
       OrderDetails.OrderID
) As OrderTotals
On 
    OrderTotals.OrderID = Order.OrderID

Where
   Order.Date between @x and @y
于 2014-12-12T20:38:30.567 回答