У меня есть две таблицы: MOV
и RENT
Структура таблицы
RENT
+----------+------+-----+-----+
|data | C | M | A |
+----------+------+-----+-----+
|01/01/2020| 1 | 2 | 3 |
+----------+------+-----+-----+
|02/01/2020| 2 | 3 | 4 |
+----------+------+-----+-----+
|03/01/2020| 3 | 4 | 5 |
+----------+------+-----+-----+
MOV
+---+-------+---------+
|id | valor |tp_fundo |
+---+-------+---------+
|1 |100 | C |
+---+-------+---------+
|2 |200 | M |
+---+-------+---------+
|3 |300 | A |
+---+-------+---------+
Что мне нужно сделать, это: Клиент вложил $ 100,00 в инвестиции C
после 3 дни этот фонд принес 6% в соответствии с таблицей доходности столбца C
. Поэтому мне нужно сложить сумму дохода за эти 3 даты ** (6%) ** и применить к стоимости его инвестиций $ 100 + 6% = $ 6.00
Вот выборка, которую я пытаюсь сделать, но я не могу сгенерировать выборку с помощью:
SELECT mov.tipo_fundo,
(mov.valor*(SELECT sum(rf.fundo_conservador) FROM `rentabilidade_fundos` rf where rf.data between
CASE WHEN ((mov.data_solicitacao) <= (CURRENT_DATE()) )
THEN mov.data_solicitacao
ELSE (select last_day(curdate() - interval 1 month) + interval 1 day)
END
and (select last_day(curdate())) ))/100 as REND_TOTAL_MES_CONSERVADOR,
(mov.valor*(SELECT sum(rf.fundo_moderado) FROM `rentabilidade_fundos` rf where rf.data between
CASE WHEN ((mov.data_solicitacao) <= (CURRENT_DATE()) )
THEN mov.data_solicitacao
ELSE (select last_day(curdate() - interval 1 month) + interval 1 day)
END
and (select last_day(curdate())) ))/100 as REND_TOTAL_MES_MODERADO,
(mov.valor*(SELECT sum(rf.fundo_arrojado) FROM `rentabilidade_fundos` rf where rf.data between
CASE WHEN ((mov.data_solicitacao) <= (CURRENT_DATE()) )
THEN mov.data_solicitacao
ELSE (select last_day(curdate() - interval 1 month) + interval 1 day)
END
and
(select last_day(curdate())) ))/100 as REND_TOTAL_MES_ARROJADO
from movimentacao mov where 1=1 and mov.tipo_movimento = 'A' and mov.id_usuario=6 GROUP by tipo_fundo
Вот как вам нужен выбор, чтобы выглядеть:
FINAL SELECT
+---+---------+---------+
|id |tp_fundo | |
+---+---------+---------+
|1 |C | $6,00 |
+---+---------+---------+
|2 |M | $18,00 |
+---+---------+---------+
|3 |A | $36,0 |
+---+---------+---------+