The subquery can only be added at the left side of the join. So switch them around and you should be one step further. This will get you the set of customers and their firstname:
FROM
(FROM Sales.Customer
group by CustomerType
SELECT max(FirstName) as FirstName, max(Birthday) as Birthday) as nameselected
inner join Sales.Customer as cust
ON cust.firstname=nameselected.FirstName
SELECT *
But it seems impossible to get it to show two columns. It only shows the first column of the subquery. Never the firstname and the birthday as well.
A good alternative is using the subquery’s result as a list, which is also easier on the eyes and you get to use all query-options in your subquery:
SELECT cust.Name, cast(cust.Birthday as string) as Birthday
FROM Sales.Customer as cust
WHERE cust.FirstName IN (
SELECT max(FirstName) as FirstName
FROM Sales.Customer
group by CustomerType)
Casted the birthday for readability.