这样就可以了
create table #a(id int, Year varchar(7),month varchar(5), Money1 money, Money2 money, Money3 money);
insert into #a values(1,'2005','05', 20, 0, 20);
insert into #a values(1,'2005','06', 35, 0, 55);
insert into #a values(1,'2005','07', 25, 80, 0);
insert into #a values(1,'2005','08', 20, 0, 20);
insert into #a values(1,'2005','09', 25, 0, 45);
insert into #a values(2,'2005','05', 20, 0, 20);
insert into #a values(2,'2005','06', 35, 55, 0);
insert into #a values(2,'2005','07', 25, 0, 25);
insert into #a values(2,'2005','08', 20, 0, 40);
insert into #a values(2,'2005','09', 25, 0, 75);
insert into #a values(2,'2004','05', 20, 0, 20);
insert into #a values(2,'2004','06', 35, 55, 0);
insert into #a values(2,'2004','07', 25, 0, 25);
insert into #a values(2,'2004','08', 20, 0, 40);
insert into #a values(2,'2004','09', 25, 0, 75);
insert into #a values(3,'2004','05', 20, 0, 20);
insert into #a values(3,'2004','06', 35, 55, 0);
insert into #a values(3,'2004','07', 25, 0, 25);
insert into #a values(3,'2004','08', 20, 0, 40);
insert into #a values(3,'2004','09', 25, 0, 75);
select a.id,a.Year,month,money1,money2,money3
from #a a
where month>(select month from #a where id=a.id and money3=0 and year=a.year ) and
year=(select max(year) from #a where id=a.id and money3=0)