2014-08-28 54 views
1

我希望为某个表的财务年度中的客户返回平均订单价值(订单中所有订单项的总和为Qty * Price,然后为平均订单总额)看起来像下面创建查询以返回客户订单的平均交易

财务年度为公历1日/月/年(可通行证在动态地设置了一个param) 财务年度结束30日/月/年(可在动态传递的PARAM) 用户ID(可以动态方式作为参数传入)

Orders Table 
-OrderID 
-UserID 
-OrderDate 

OrderItems Table 
-OrderItemID 
-OrderID 
-Qty 
-Price 

我正在使用脚本语言小号ColdFusion和数据库是MSSQL

感谢所有为您的时间

CHRIS

回答

2

不熟悉的ColdFusion。

的SQL是

SELECT o.UserID, AVG(oi.OrderTotal) AverageOrderValue 
FROM Orders o 
     INNER JOIN 
     (SELECT OrderID, SUM(Qty*Price) OrderTotal 
     FROM OrderItems 
     GROUP BY OrderID) oi ON o.OrderID=oi.OrderID 
WHERE o.OrderDate BETWEEN @StartDate AND @EndDate 
+0

非常感谢,这个效果很好。我不知道从哪里开始。 – 2014-08-28 04:13:01

1
declare 
@first_param datetime='01-01-2001' 
@last_param datetime='01-07-2014' 
begin 

select AVG(orderid_cnt),sum_qty,a.user_id from (
select sum(b.qty*b.price) as sum_qty,orderid,COUNT(orderid) as orderid_cnt 

From orders a 
inner join orderitems b 
on a.orderid=b.orderid 
group by orderid) a 
inner join orders a1 
on a.orderid=a1.orderid