首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-09-10 
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.日期 

热点排行