going :through the other side of a has_one association?

class Author
  belongs_to :book
end

class Book < ActiveRecord::Base
  has_one :sales_data
  has_many :authors
end

class SalesData < ActiveRecord::Base
  belongs_to :book
end

What code would be required to directly find the Authors from the
SalesData? i.e. in SQL:
SELECT SUM(sales_data.price), authors.name
FROM sales_data
LEFT JOIN authors ON sales_data.book_id = authors.book_id
GROUP BY authors.name

I know I could use find_by_sql ... just looking for something a little
cleaner - has_many(:through) doesn't seem to work. Is this a bug in
has_many :through or am I just using it wrong?