The Where clause works ...
I got correct data in SQL server for below...
Declare @rpt_year_month as int
set @rpt_year_month ='201406'
SELECT
a.group_name, a.primed_status as curr_prim_status, b.Primed_Status as prev_prim_status, a.EHR as curr_EHR, b.EHR as prev_EHR
from (select practice_id, group_name, primed_status, ehr, RPT_YEAR_MONTH from EMR_REPORTING.dbo.vMH_MEASURE_PRACTICE
where RPT_YEAR_MONTH = @rpt_year_month) a inner join
(select practice_id, group_name, primed_status, ehr, RPT_YEAR_MONTH
from EMR_REPORTING.dbo.vMH_MEASURE_PRACTICE
where EMR_REPORTING.dbo.vMH_MEASURE_PRACTICE.RPT_YEAR_MONTH = convert(varchar(6), dateadd(MM,-3, convert(datetime, substring(cast(@rpt_year_month as varchar), 5,2) + '/' + '30'
+ '/'+ substring(cast(@rpt_year_month as varchar), 1,4))), 112)) b
on a.Group_Name = b.Group_Name