Here's the first one, with the complete name instead of just the last_name like you did.
Brian's example returns NULL for the user if one of the field is NULL. This is what happens in SQL Server when you concatenate a null value.
So you can use COALESCE.
select
coalesce(cnt.last_name,'') + ', ' + coalesce(cnt.first_name,'') + ' (' + coalesce(cnt.userid,'') + ')' as 'User',
grp.last_name as 'Is member of'
from ca_contact cnt
inner join grpmem mem
on mem.member=cnt.contact_uuid
inner join ca_contact grp
on grp.contact_uuid=mem.group_id
where grp.contact_type=2308 and cnt.contact_type <> 2308
order by 1
And the second one :
select
coalesce(cnt.last_name,'') + ', ' + coalesce(cnt.first_name,'') + coalesce(cnt.userid,'') as 'User',
(select max(sess.login_time) from session_log sess where contact=cnt.contact_uuid) as 'Last loging time'
from ca_contact cnt
Hope this helps
And by the way, if you administer SDM, you should consider taking SQL courses, it will facilitate your life