日期:2014-05-16  浏览次数:20907 次

填补空白字段,求SQL语句
A字段  


2008-1-12
NULL
NULL
NULL
NULL
2009-1-15
NULL
NULL
2010-1-1
NULL
NULL
NULL

第一个记录是肯定有的,2008-1-12

现在想变为

2008-1-12

2008-1-12
2008-1-12
2008-1-12
2008-1-12
2009-1-15

2009-1-15
2009-1-15

2010-1-1

2010-1-1
2010-1-1
2010-1-1


实际就是把为NULL的地方都用前面的替换,求SQL语句




------解决方案--------------------
如果仅有这一个字段,通过SQL语句是无法实现的。需要通过VBA程序来实现了。

如果想用SQL语句实现,则需要到少有一个排序字段,你可以添加一个 自动编号
------解决方案--------------------
UPDATE TT2 C INNER JOIN (
SELECT *,DLOOKUP('ID','TT2','F1>#' & A.F1 & '#')-1 AS SS,
IIF(SS IS NULL,DMAX('ID','TT2'),SS) AS DD

 FROM TT2 A 
WHERE A.F1 IS NOT NULL) D
ON (C.ID BETWEEN D.ID AND D.DD)
SET C.F1=D.F1
------解决方案--------------------
引用如我前面添了个自动编号

------解决方案--------------------
OR
UPDATE TT3 SET F1=dmax('F1','tT3','ID<=' & ID)