this one give you what you need
Code:
create table #T
(
studentID int,
contactdate datetime
)
insert into #T (studentID, contactdate)
select
1,'1/1/2011'
union
select
1,'1/2/2011'
union
select
1,'2/5/2012'
union
select
1,'3/5/2012'
union
select
2,'1/1/2011'
union
select
2,'4/5/2012'
union
select
2,'4/6/2012'
union
select
2,'4/7/2012'
union
select
2,'12/12/2012'
union
select
3,'6/5/2012'
union
select
3,'6/6/2012'
union
select
3,'7/6/2012'
union
select
3,'7/7/2012'
union
select
3,'8/8/2012'
union
select
3,'8/9/2012'
union
select
3,'12/14/2013'
union
select
4,'1/1/2011'
union
select
4,'2/1/2011'
union
select
4,'3/1/2011'
union
select
4,'4/1/2011'
select * from #T
select distinct studentID,
COUNT(studentID) as studentcount,
DATENAME(month, contactdate) as contactmonth,
DATEPART(year, contactdate) as contactyear
from #T
where DATEPART(year, contactdate)=2012
group by studentID,
DATENAME(month, contactdate) ,
DATEPART(year, contactdate)
order by studentID, DATENAME(month, contactdate)
drop table #T