Probably your ARTWORK 2 relationship is not filtering the records. If ( testField = "yourCurrencyDelimiter" ; Sum ( currencyFilteredTO::retailSale ) ; whatever false result you want )
When a calculation refers to a field in a related table where there are multiple related records, the reference refers only to the "first related record" unless this reference is in the form of an aggregate function, the values of all other related records are ignored. So both of your methods, will either return a total of all related records or no value at all.
There are multiple methods to get a "selective sum" of related records (Selective meaning that you only want a sum of some, not all related records). ExecuteSQL is one option. A relationship that only matches to records where currency is of a specific type is another. And a filtered portal with a summary field from the portal's table is a third.
It's also possible in many cases to set up a summary report where you group your records pulled up for the report by currency type and use a single summary field inside a sub summary part to show a sub total for each currency type.