I have used the below query to achieve my goal. Use PIVOT for Multiple records in SQL SERVER and Getting Null data while using PIVOT in sql server 2008 R2 questions has helped me to build this query.
CREATE Table #MEMBER_ATTRIBUTES (
MEMBER_ID int,
MEMBER_PROPERTY varchar( 500 ),
MEMBER_VALUE varchar( 500 ),
PRMEDIAUSER_ID int,
MEMBER_FULL_NAME nvarchar(500),
MEMBER_LAST_NAME nvarchar(500),
MEMBER_MID_INIT nvarchar(500),
MEMBER_FIRST_NAME nvarchar(500),
MEMBER_EMAIL nvarchar(500),
MEMBER_FAX nvarchar(500),
MEMBER_SEND_BY_FAX nvarchar(500),
MEMBER_LANGUAGE nvarchar(500),
COUNTRY_ID int,
MEMBER_ACTIVE int,
MEMBER_DATE_ADDED datetime,
MEMBER_COMPANY nvarchar(500),
MEMBER_ADDRESS nvarchar(500),
MEMBER_CITY nvarchar(500),
MEMBER_STATE nvarchar(500),
MEMBER_ZIP nvarchar(500),
MEMBER_POSTALCODE nvarchar(500),
MEMBER_PHONE nvarchar(500),
MEMBER_NEAREST_AIRPORT nvarchar(500),
MEMBER_OCCUPATION nvarchar(500),
MEMBER_COUNTY nvarchar(500)
)
insert INTO #MEMBER_ATTRIBUTES ( MEMBER_ID ,MEMBER_PROPERTY
, MEMBER_VALUE,PRMEDIAUSER_ID,MEMBER_FULL_NAME,MEMBER_LAST_NAME,MEMBER_MID_INIT,MEMBER_FIRST_NAME,
MEMBER_EMAIL,MEMBER_FAX,MEMBER_SEND_BY_FAX ,MEMBER_LANGUAGE ,COUNTRY_ID ,MEMBER_ACTIVE ,MEMBER_DATE_ADDED ,
MEMBER_COMPANY ,MEMBER_ADDRESS ,MEMBER_CITY ,MEMBER_STATE ,MEMBER_ZIP ,MEMBER_POSTALCODE ,
MEMBER_PHONE ,MEMBER_NEAREST_AIRPORT ,MEMBER_OCCUPATION ,MEMBER_COUNTY
) select isnull( m.MEMBER_ID ,'0' ),
ISNULL ( [gmin].[MEMBER_PROPERTY] , '''') AS MEMBER_PROPERTY
, ISNULL( [gmin].[MEMBER_VALUE] ,'''' ) AS MEMBER_VALUE,
m.PRMEDIAUSER_ID,m.MEMBER_FULL_NAME,m.MEMBER_LAST_NAME,m.MEMBER_MID_INIT ,
m.MEMBER_FIRST_NAME,
m.MEMBER_EMAIL,m.MEMBER_FAX ,m.MEMBER_SEND_BY_FAX,m.MEMBER_LANGUAGE ,
m.COUNTRY_ID ,m.MEMBER_ACTIVE,m.MEMBER_DATE_ADDED,m.MEMBER_COMPANY ,
m.MEMBER_ADDRESS ,m.MEMBER_CITY,m.MEMBER_STATE ,m.MEMBER_ZIP ,
m.MEMBER_POSTALCODE,m.MEMBER_PHONE ,m.MEMBER_NEAREST_AIRPORT ,
m.MEMBER_OCCUPATION,m.MEMBER_COUNTY
from SUBSCRIBER s
inner join listserv.dbo .MEMBER m on m.MEMBER_EMAIL= s.SUBSCRIBER_EMAIL
left join listserv.dbo .MEMBER_ATTRIBUTES gmin on gmin.MEMBER_ID= m.MEMBER_ID
where s .SUBSCRIBER_GROUP like '%abc%' and m.MEMBER_ACTIVE=1
--select * from #MEMBER_ATTRIBUTES
DECLARE @cols AS NVARCHAR( MAX ),
@query AS NVARCHAR ( MAX)
SELECT @cols= stuff((
SELECT distinct ', ' +QUOTENAME ( MAX( MEMBER_PROPERTY ))
FROM #MEMBER_ATTRIBUTES
group by MEMBER_VALUE
--order by MEMBER_VALUE
FOR XML PATH( '' )), 1 , 2, '');
SET @query = 'SELECT MEMBER_ID,
PRMEDIAUSER_ID,
MEMBER_FULL_NAME,
MEMBER_LAST_NAME,
MEMBER_MID_INIT ,
MEMBER_FIRST_NAME,
MEMBER_EMAIL,
MEMBER_FAX ,
MEMBER_SEND_BY_FAX,
MEMBER_LANGUAGE ,
COUNTRY_ID ,
MEMBER_ACTIVE,
MEMBER_DATE_ADDED,
MEMBER_COMPANY ,
MEMBER_ADDRESS ,
MEMBER_CITY,
MEMBER_STATE ,
MEMBER_ZIP ,
MEMBER_POSTALCODE,
MEMBER_PHONE ,
MEMBER_NEAREST_AIRPORT ,
MEMBER_OCCUPATION,
MEMBER_COUNTY ' + @cols + '
from
(
SELECT MEMBER_ID,MEMBER_VALUE,MEMBER_PROPERTY,PRMEDIAUSER_ID,
MEMBER_FULL_NAME,
MEMBER_LAST_NAME,
MEMBER_MID_INIT ,
MEMBER_FIRST_NAME,
MEMBER_EMAIL,
MEMBER_FAX ,
MEMBER_SEND_BY_FAX,
MEMBER_LANGUAGE ,
COUNTRY_ID ,
MEMBER_ACTIVE,
MEMBER_DATE_ADDED,
MEMBER_COMPANY ,
MEMBER_ADDRESS ,
MEMBER_CITY,
MEMBER_STATE ,
MEMBER_ZIP ,
MEMBER_POSTALCODE,
MEMBER_PHONE ,
MEMBER_NEAREST_AIRPORT ,
MEMBER_OCCUPATION,
MEMBER_COUNTY FROM #MEMBER_ATTRIBUTES ) x
pivot
(
MAX(MEMBER_VALUE)
for x.MEMBER_PROPERTY in (' + @cols + ')
) p'
execute sp_executesql @query;
drop table #MEMBER_ATTRIBUTES