- patrimoine_instruments(instrument_id, Instrument, Instrument_ISIN)
- patrimoine_transactions(transaction_id, Instrument , количество, значение)
- quote(quote, quote_ISIN, close_datetime, последнее)
- перечисляю все инструменты, для которых количество не равно 0
- с их соответствующим количеством на сегодняшний день для каждого инструмента.
- с их самым последним значением из таблицы котировок для каждого инструмента.
- с самой последней датой от таблица котировок для каждого инструмента
Код: Выделить всё
SELECT
patrimoine_instruments.`instrument` as actif,
SUM(patrimoine_transactions.`quantite`) as quantite,
(SELECT quote.last FROM quote HAVING quote.close_datetime = MAX(quote.close_datetime)) as valeur,
MAX(quote.close_datetime) as date
FROM `patrimoine_transactions`
LEFT JOIN patrimoine_instruments ON patrimoine_transactions.instrument = patrimoine_instruments.instrument_id
LEFT JOIN quote ON patrimoine_instruments.instrument_ISIN = quote.quote_ISIN
GROUP BY patrimoine_instruments.`instrument`
HAVING SUM(`quantite`) 0
ORDER BY `patrimoine_instruments`.`instrument` ASC;
Где-то должно быть чего-то не хватает (WHERE или HAVING для пример). Есть у кого-нибудь идеи?
Подробнее здесь: https://stackoverflow.com/questions/793 ... d-or-where