Пожалуйста, попробуйте следующий скрипт, который использует NOT EXISTS, чтобы увидеть, удовлетворяет ли он вашим требованиям.
----drop table test
create table test (
[Row ID] int ,
BeginDate date,
EndDate date,
[Unique ID] varchar(15),
Amount decimal(10,2)
)
insert into test values
(178484,'2018-01-01','2018-01-31','GroupID1',387.22),
(176555,'2018-03-01','2018-03-31','GroupID1',751.07),
(170120,'2018-04-01','2018-04-30','GroupID1',567.48),
(172037,'2018-09-01','2018-09-30','GroupID1',587.51),
(179024,'2018-10-01','2018-10-31','GroupID1',63.42),
(182061,'2018-11-01','2018-11-30','GroupID1',728.04)
select M as MonthNumber ,DATENAME(Month, DATEADD(Month, M, -1)) as MonthName
from (VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11), (12)) TT(M)
where not exists (select * from test where TT.M=MONTH(BeginDate))
/*
MonthNumber MonthName
----------- ------------------------------
2 February
5 May
6 June
7 July
8 August
12 December
*/