Assuming you have a table like this
OrderID |
CustomerID |
OrderDate |
1 |
1 |
1/1/2014 |
2 |
1 |
1/7/2014 |
3 |
1 |
1/16/2014 |
4 |
1 |
2/1/2014 |
5 |
2 |
1/2/2014 |
6 |
2 |
1/17/2014 |
7 |
2 |
1/31/2014 |
8 |
2 |
2/20/2014 |
you can get the a list of orders and next orders with this query:
Code:
SELECT tblOrders.OrderID, tblOrders.CustomerID, tblOrders.OrderDate, Min(IIf([tblorders_next]![orderdate]>[tblorders]![orderdate],[tblorders_next]![orderdate],Null)) AS NextOrder
FROM tblOrders LEFT JOIN tblOrders AS tblOrders_Next ON tblOrders.CustomerID = tblOrders_Next.CustomerID
GROUP BY tblOrders.OrderID, tblOrders.CustomerID, tblOrders.OrderDate
HAVING (((Min(IIf([tblorders_next]![orderdate]>[tblorders]![orderdate],[tblorders_next]![orderdate],Null))) Is Not Null));
then you can calculate the days between orders and do whatever you want with that (calculate an average number of days or weeks between orders etc.