For the first part, I've used the query from the alert when a device hasn't been polled in the last 5 tries just expanding it to a month rather than attempts.
SELECT DISTINCT Nodes.NodeID AS NetObjectID, Nodes.Caption AS Name
(DATEDIFF(MM, Nodes.LastSync, getdate())/Nodes.PollInterval > 1) AND
NOT (Nodes.Status = '9') AND
NOT (Nodes.Status = '11'))
This should give you anything that hasn't been successfully polled in over a month.
This should give you any node that is up, with more than one interface, and one or more are down.
SELECT DISTINCT N.NodeID AS NetObjectID, N.Caption AS Name, Count(I.InterfaceID) as Interface_Count
FROM Nodes n
Join Interfaces I
on n.NodeID = I.NodeID
Where I.OperStatus = 2 AND N.Status = 1
Group by N.NodeID, N.Caption
HAVING Count(I.InterfaceID) >= 2