SELECT
royalty_currency,
SUM (
CASE sales_or_return
when 'R' then royalty_price * -1
else royalty_price
) as TotalSales
WHERE provider=%s AND date = %s AND sales_or_return IN ('S', 'R')
GROUP BY royalty_currency
I'm not 100% sure this will compile on MySQL try it first. If it does ... great ... if not, let me know since I have another idea. Once you get this, multiply by the exchange rate for that given currency.
EDIT: added AND sales_or_return IN ('S', 'R')
per @ypercube's recommendation. Additionally, this assumes that all currency is the same. You will still need to iterate the results according to their exchange rates. If the exchange rates are stored in a database then you could join the data on the exchange rate table. Not being a great accountant, I don't know if you'd want to capture the exchange rate at time of sale or if everything is calculated as of current exchange rates. My assumption is that, at this point, you're calculating sales against current exchange rates that you're obtaining via a web service.
An alternative query could be:
SELECT sales.royalty_currency, sales.GrossSales, returns.GrossReturns, sales.GrossSales - returns.GrossReturns,
(SELECT sum(royalty_price) GrossSales, royalty_currency
FROM sales_raw
WHERE provider=%s AND sales_or_return = 'S' AND date=%s) sales
JOIN
(SELECT sum(royalty_price) GrossReturns, royalty_currency
FROM sales_raw
WHERE provider=%s AND sales_or_return = 'R' AND date=%s) returns
on sales.royalty_currency = returns.royalty_currency
This one could probably be refined a bit more, also. It also gets you some other information that might be useful for other reporting purposes.