I would recommend against using domain functions (dcount, dsum, etc) in queries, they have a tendency to make things really slow.
Column 4 and 5 appear to be identical so you only need to use one of them. Assume your table is named tblTest
Just so it's easier to see break this down into 3 queries:
qryOrderCount
Code:
SELECT tblTest.YearEntered, tblTest.MonthEntered, Count(tblTest.OrdersEntered) AS TotalOrdersEntered
FROM tblTest
GROUP BY tblTest.YearEntered, tblTest.MonthEntered;
qryUniqueOrders
Code:
SELECT [UniqueOrdersPrequery].YearEntered, [UniqueOrdersPrequery].MonthEntered, Count([UniqueOrdersPrequery].TotalOrdersEntered) AS UniqueOrdersFROM (SELECT tblTest.YearEntered, tblTest.MonthEntered, tblTest.OrdersEntered AS TotalOrdersEntered FROM tblTest GROUP BY tblTest.YearEntered, tblTest.MonthEntered, tblTest.OrdersEntered) AS [UniqueOrdersPrequery]
GROUP BY [UniqueOrdersPrequery].YearEntered, [UniqueOrdersPrequery].MonthEntered;
qryUniqueUsers
Code:
SELECT YearEntered, MonthEntered, Count(Users) AS CountOfUsers
FROM (SELECT tblTest.YearEntered, tblTest.MonthEntered, tblTest.users AS Users FROM tblTest GROUP BY tblTest.YearEntered, tblTest.MonthEntered, tblTest.users) AS UniqueUsersPrequery
GROUP BY YearEntered, MonthEntered;
each query has a separate grouping, then it's just a matter of combining them into a single query.
You can test it against your domain functions but think you'll find the query driven solution quicker.