|
@@ -106,10 +106,10 @@ def convert_transaction_to_snapshot(portfolio_ids, end_day) {
|
|
|
// 在各证券持仓时段中,填充所有无净值的但其它证券有净值的合理日期
|
|
|
// 比如 2024-01-10 ~ 2024-01-20区间,组合持有基金A和基金B,基金A有每日净值
|
|
|
// 而基金B只有01-12和01-19两期周五净值,那么基金B需要填充除这两天以外的所有日期
|
|
|
- // TODO: 待查,如果有共享的子基金,但日期不同,会不会出BUG
|
|
|
- tb_holding_date_range = SELECT p.portfolio_id, p.sec_id, n.price_date.min() AS oldest_date, n.price_date.max() AS latest_date
|
|
|
+ tb_holding_date_range = SELECT p.portfolio_id, p.sec_id, n.price_date.max() AS oldest_date, today() AS latest_date
|
|
|
FROM portfolio_info p
|
|
|
INNER JOIN tb_nav n ON n.sec_id = p.sec_id
|
|
|
+ WHERE n.price_date < p.start_cal_date
|
|
|
GROUP BY p.portfolio_id, p.sec_id;
|
|
|
// 所有净值日期+前值日期
|
|
|
tb_date = SELECT DISTINCT dr.portfolio_id, n.price_date
|
|
@@ -184,7 +184,7 @@ def convert_transaction_to_snapshot(portfolio_ids, end_day) {
|
|
|
GROUP BY portfolio_id, price_date;
|
|
|
|
|
|
// 取组合净值前值
|
|
|
- s_json = (SELECT portfolio_id, price_date.min() AS price_date
|
|
|
+ s_json = (SELECT portfolio_id, price_date.max() AS price_date
|
|
|
FROM ej(tb_portfolio_ret, tb_port_first_cal_date, 'portfolio_id')
|
|
|
WHERE tb_portfolio_ret.price_date < tb_port_first_cal_date.first_cal_date
|
|
|
GROUP BY portfolio_id).toStdJson();
|