How's this for a start - I would set the operationalstatus field formating as Object Status, hide nodeid and flag, and group by caption (or even add sitecode or location to group by)
select n.nodeid,n.caption, p.Name,p.operationalstatus,p.portdescription, v.vlanid, v.vlanname, p.flag
FROM dbo.Nodes AS n WITH (NOLOCK) left join
dbo.UDT_Port AS p WITH (NOLOCK) ON p.NodeID = n.NodeID AND p.Flag not in (1,3) left JOIN
dbo.UDT_VLAN as v WITH (NOLOCK) ON p.PortID = v.PortID