--try
declare @s varchar(2000)
set @s='select A.id,A.[user],A.password'
select @s=@s+',['+logindate+']=max(case when logindate='''+logindate+''' then '''' end) '
from table2
group by logindate
print @s
set @s=@s+' from table1 A inner join table2 B on A.id=b.id group by A.id,A.[user],A.password '
exec(@s)