The difference between an outer and inner join is that inner joins won't return a result if the joined field doesn't have a matching row in the joined table. OUTER joins always return the results from the original table even when no rows are returned from the joined table.
If you are using this to create a chart, then you probably want to go with the UNION SELECT statements though, since the chart uses rows for records.
In that case you might want to add to the WHERE clause for each of the SELECT and UNION SELECT where clauses. Get the user information into a separate recordset, then use the UserID to filter the union select recordset. You probably don't want the outer SUM() since you will want each row separately in order to chart them.