У меня возникли проблемы с присоединением 2 таблиц и точным фильтром данных. При необходимости я могу немного изменить таблицы. Я бегу Microsoft SQL Server 2008.Соедините 2 таблицы - заполните отсутствующие даты
Table A
System_Code | Name | Client ID| Fund | Purchase_Date | Shares
1 | Lily | 123456 | 001 | 02/21/2016 | 100
1 | Lily | 123456 | 001 | 02/26/2016 | 200
2 | Lily | 123456 | 002 | 02/24/2016 | 250
и так далее
Каждый фонд имеет свои собственные System_Code
Table B
System_Code | Date | Price
1 | 02/21/2016 | 10
1 | 02/22/2016 | 10
1 | 02/23/2016 | 9
1 | 02/24/2016 | 10
1 | 02/25/2016 | 11
1 | 02/26/2016 | 10.5
и так далее
Моя цель состоит в том, чтобы выяснить, сколько доля клиента удерживается в определенный день и цена за акцию.
Если я просто соединить 2 таблицы ON (tableA.System_Code = tableB.System_Code), я получаю это:
System_Code| Name | Client ID| Fund |Purchase_Date|Shares| Date | Price
1 | Lily | 123456 | 001 |02/21/2016 |100 |02/21/2016| 10
1 | Lily | 123456 | 001 |02/26/2016 |200 |02/26/2016| 10.5
Если я соединить 2 таблицы вместе ГДЕ tableB.Date> = tableA.Purchase
System_Code| Name | Client ID| Fund |Purchase_Date|Shares| Date | Price
1 | Lily | 123456 | 001 |02/21/2016 |100 |02/21/2016| 10
1 | Lily | 123456 | 001 |02/21/2016 |100 |02/22/2016| 10
1 | Lily | 123456 | 001 |02/21/2016 |100 |02/23/2016| 9
1 | Lily | 123456 | 001 |02/21/2016 |100 |02/24/2016| 10
1 | Lily | 123456 | 001 |02/21/2016 |100 |02/25/2016| 11
1 | Lily | 123456 | 001 |02/21/2016 |100 |02/26/2016| 10.5
1 | Lily | 123456 | 001 |02/26/2016 |200 |02/26/2016| 10.5
Как вы можете видеть, это почти идеально, за исключением последних 2 ряда
1 | Lily | 123456 | 001 |02/21/2016 |100 |02/26/2016| 10.5
1 | Lily | 123456 | 001 |02/26/2016 |200 |02/26/2016| 10.5
Поскольку есть покупка сделана на 02/26/2016, первая строка с датой покупки 02/21/2016 должна упасть. Желательным результатом будет:
System_Code| Name | Client ID| Fund |Purchase_Date|Shares| Date | Price
1 | Lily | 123456 | 001 |02/21/2016 |100 |02/21/2016| 10
1 | Lily | 123456 | 001 |02/21/2016 |100 |02/22/2016| 10
1 | Lily | 123456 | 001 |02/21/2016 |100 |02/23/2016| 9
1 | Lily | 123456 | 001 |02/21/2016 |100 |02/24/2016| 10
1 | Lily | 123456 | 001 |02/21/2016 |100 |02/25/2016| 11
1 | Lily | 123456 | 001 |02/26/2016 |200 |02/26/2016| 10.5
Надеюсь, что я четко передаю свои баллы. ТИА!
Вы делаете ваши очки очень ясно! Можете ли вы сделать sqlFiddle с тестовыми данными? – gh9