SQL 各路大神求解,该怎么解决

SQL 各路大神求解有一组数据:日期代码数量6.7A126.8A216.9NULLNULL6.10NULLNULL6.11B346.12NULLNULL6.13C4

SQL 各路大神求解
有一组数据:
  日期 代码 数量
  6.7 A 12
  6.8 A 21
  6.9 NULL NULL
 6.10 NULL NULL
  6.11 B 34
  6.12 NULL NULL
  6.13 C 45
  6.14 NULL NULL  
当代码和数量出现null值的时候,就用这天之前最近的非null的值的代码和数量代替,怎么写
结果为
日期 代码 数量
  6.7 A 12
  6.8 A 21
  6.9 A 21
 6.10 A 21
  6.11 B 34
  6.12 B 34
  6.13 C 45
  6.14 C 45

[解决办法]

SQL code
select a.日期,isnull(a.代码,b.代码) as 代码,isnull(a.数量,b.数量) as 数量from tab aleft join tab bon b.日期 = (select max(日期) from tab where 日期<a.日期 and 代码 is not null and 数量 is not null)order by a.日期