Рассмотрим следующие таблицы MySQL:
ПРИЛОЖЕНИЯ (содержит все приложения всех пользователей)
unique_id | user_id | date_of_application | date_ended | status
----------------------------------------------------------------------------
1 user_a 2010-09-09 2010-12-24 Ended
2 user_a 2011-03-03 2011-06-06 Ended
3 user_a 2011-08-08 2011-10-10 Ended
4 user_b 2011-10-01 Active
* ITEM_TRANSACTIONS * (содержит все транзакции элемента всеми пользователями)
user_id | item_id | quantity_ordered | date_requested | date_received
----------------------------------------------------------------------------
user_a item_a 20 2011-10-01 2011-10-02
user_a item_b 10 2011-10-01 2011-10-02
user_b item_a 30 2011-10-05 2011-10-10
user_b item_b 30 2011-10-05 2011-10-10
ПУНКТЫ
item_id | item_name | item_price
------------------------------------
item_a Item AA 500
item_b Item BB 1000
До сих пор у меня есть следующий запрос, который уже принимает сумму значений цен на товары , различающихся для каждого пользователя .
Однако, кроме того, что мне нужно, это то, что SELECT должен покрывать (вычислять сумму) только те транзакции элемента , которые имеют статус его пользователя Завершено иэто приложение является последним .
Повторюсь, таблицы application и item_transactions будут содержать несколько записей одним и тем же пользователем с течением времени, что должно быть охвачено (ВЫБРАНО) - это те транзакции в соответствии с последнейтолько приложение (статус Завершено ).
SELECT
item_po.poid,
SUM(item_transactions.quantity_ordered) AS qtysum,
item_transactions.item_id,
item_transactions.quantity_ordered,
items.item_id,
items.item_price,
applications.user_id,
applications.status
FROM
items
WHERE
applications.status='Ended'
GROUP BY
item_transactions.user_id