Я хочу написать код Python (кадр данных pandas), эквивалентный следующему коду.Я могу присоединиться к таблицам, но часть подзапроса я не смог кодировать. Пожалуйста, помогите.
declare @test1 table (id int, market_date date , value float )
declare @test2 table (id int, market_date date , value float )
insert into @test1
values (1,'2018-09-10',100),(1,'2018-09-11',101),(1,'2018-09-12',102)
insert into @test2
values (1,'2018-09-11',100),(1,'2018-09-15',101),(1,'2018-09-14',102)
select * from @test1
select * from @test2
select *
from @test2 a
where a.market_date >=(select max(b.market_date) from @test1 b where a.id = b.id )
Я соединяюсь с этими таблицами через python, и вот мой пример того, что я пробовал до сих пор.
df_test2 = pd.read_sql_query('select * from test.dbo.test2', cnxn )
df_test1 = pd.read_sql_query('select * from test.dbo.test1', cnxn )
d1=pd.merge(df_test2,df_test1,how='inner',on=['id'])
образец набора данных и вывод
таблица test1
id market_date value
1 2018-09-10 100
1 2018-09-11 101
1 2018-09-12 102
таблица теста2
id market_date value
1 2018-09-11 100
1 2018-09-15 101
1 2018-09-14 102
выход
id market_date value
1 2018-09-14 102
1 2018-09-15 101