Full outer join on one criteria, inner join on another
So, you've tried this?
SELECT
COALESCE(o.OrderID, od.OrderID) AS OrderID,
COALESCE(o.CurrencyID, od.CurrencyID) AS CurrencyID,
o.BuyAmount,
o.BuyRate,
od.SellAmount,
od.SellRate
FROM
#Orders AS o
FULL OUTER JOIN #OrderDetails AS od
ON o.OrderID = od.OrderID
AND o.CurrencyID = od.CurrencyID