stock indate listed_date
000001 2014.02.21 1991.04.03
000002 1991.01.29 1991.01.29
000004 2001.09.03 1991.01.14
000004 2009.06.02 1991.01.14
000004 2007.07.03 1991.01.14
0000042021.06.161991.01.14
0000052017.07.031990.12.10
0000051990.12.101990.12.10
0000051999.12.301990.12.10
0000061992.04.271992.04.27
0000062017.07.031992.04.27
试试下面的脚本是否满足要求
st = `000001`000002`000004`000004`000004`000004`000005`000005`000005`000006`000006
indate = 2014.02.21 1991.01.29 2001.09.03 2009.06.02 2007.07.03 2021.06.16 2017.07.03 1990.12.10 1999.12.30 1992.04.27 2017.07.03
listed_date = 1991.04.03 1991.01.29 1991.01.14 1991.01.14 1991.01.14 1991.01.14 1990.12.10 1990.12.10 1990.12.10 1992.04.27 1992.04.27
tmp = table(st, indate, listed_date)
select *, rowNo(indate), imin(indate) from tmp context by st
update tmp set indate=iif(rowNo(indate) == imin(indate) && indate > listed_date, listed_date[imin(indate)], indate) context by st