The problem you are facing is that for some customers it is true that they have not purchased in the last 30 days, AND they have not purchased in the last 60 days, AND they have not purchased in the last 180 days... which causes that customer to appear in each of the time frames.
It's easy to do a report that shows what customers haven't ordered in the last 30 days, the last 60 days, OR the last 90 days (one bucket), however even when I work out the logic to have the customer names only appear (if they haven't ordered) in ONLY one of these columns (30, 60, 90, 180, 365) the report doesn't look right because for example it would show the customer name in the 90 day column but nulls in the 30 and 60 day column though they also haven't ordered in the 30 and 60 day time frames.
In all practicality, instead it may be better to have the name of the customer appear in the columns (30, 60, 90, 180, 365) for when they HAVE placed an order. Then you can infer which customers have not ordered for specific time frames by the null values that will show in the columns for which they haven't ordered.
If you have Visual Studio or can run this query in SQL Management Studio then you can see an example of what I'm referring to with the following query:
Note: *Replace the XXXXXX with the prefix of your NAV production database table names
This screen shot above shows when the customer last ordered. NULL values indicate they have not ordered within the last 30/60 days. Here is the T-SQL code for this:
SELECT DISTINCT
CASE
WHEN [C].[No_] IN
(
SELECT [Sell-to Customer No_]
FROM [XXXXXX$Sales Invoice Header]
WHERE [Order Date] BETWEEN DATEADD(day , -30 , GETDATE()) AND GETDATE()
) THEN [C].[Name]
END AS [Purchased 0-30 Days],
CASE
WHEN [C].[No_] IN
(
SELECT [Sell-to Customer No_]
FROM [XXXXXX$Sales Invoice Header]
WHERE [Order Date] BETWEEN DATEADD(day , -60 , GETDATE()) AND DATEADD(day , -31 , GETDATE())
) THEN [C].[Name]
END AS [Purchased 31-60 Days],
CASE
WHEN [C].[No_] IN
(
SELECT [Sell-to Customer No_]
FROM [XXXXXX$Sales Invoice Header]
WHERE [Order Date] BETWEEN DATEADD(day , -90 , GETDATE()) AND DATEADD(day , -61 , GETDATE())
) THEN [C].[Name]
END AS [Purchased 61-90 Days],
CASE
WHEN [C].[No_] IN
(
SELECT [Sell-to Customer No_]
FROM [XXXXXX$Sales Invoice Header]
WHERE [Order Date] BETWEEN DATEADD(day , -180 , GETDATE()) AND DATEADD(day , -91 , GETDATE())
) THEN [C].[Name]
END AS [Purchased 91-180 Days],
CASE
WHEN [C].[No_] IN
(
SELECT [Sell-to Customer No_]
FROM [XXXXXX$Sales Invoice Header]
WHERE [Order Date] BETWEEN DATEADD(day , -365, GETDATE()) AND DATEADD(day , -181 , GETDATE())
) THEN [C].[Name]
END AS [Purchased 181-365 Days],
CASE
WHEN [C].[No_] IN
(
SELECT [Sell-to Customer No_]
FROM [XXXXXX$Sales Invoice Header]
WHERE [Order Date] > DATEADD(day , -365, GETDATE())
) THEN [C].[Name]
END AS [Purchased 365+ Days]
FROM [XXXXXX$Customer] [C]