テーブルは次のとおりです。
Orders
-----------
user_id
state
Items
-----------
order_id
product_id
total
Products
----------
user_id
Users
---------
name
email
関係は次のとおりです。
User
has_many :products
Order
has_many :items
belongs_to :users
Product
has_many :items
belongs_to :user
Item
belongs_to :items
製品を所有しているユーザーごとの items.total の合計を取得したい
現在、次のSQLステートメントがあります。
SELECT *, SUM(items.total) as totalprice
FROM "orders"
INNER JOIN "items" ON "items"."order_id" = "orders"."id"
INNER JOIN "products" ON "products"."id" = "items"."product_id"
INNER JOIN "users" ON "users"."id" = "products"."user_id"
WHERE "orders"."state" = 'complete'
GROUP BY users.id
また
Order.complete.joins(:items => {:product => :user}).select("*, SUM(items.total) as totalprice").group('users.id')
上記は機能しません。これは簡単だと思います。