- 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(DISTINCT 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;
< /code>
, но в случае, если в таблице есть данные для более чем 1 инструмента, возвращаемые данные неверны, когда они возвращаются. пример). У кого -нибудь есть идея? < /P>
Вот репликация базы данных и запроса. Но обратите внимание, что я получаю сообщение об ошибке, которое я не получаю, использую свой веб -сайт. Интересно, что это связано с столбцом, который возвращает неправильные значения.>
Подробнее здесь: https://stackoverflow.com/questions/793 ... d-or-where