原数据: 订单号 发票号 部门 业务员 开票人 产品 1 127 江苏 张三 李四 FZ01 1 FZ02 1 FZ03 2 128 湖北 郭辉 王莉 FZ01 3 129 湖北 郭辉 王莉 FZ02 3 FZ04
填充后:订单号 发票号 部门 业务员 开票人 产品 1 127 江苏 张三 李四 FZ01 1 127 江苏 张三 李四 FZ02 1 127 江苏 张三 李四 FZ03 2 128 湖北 郭辉 王莉 FZ01 3 129 湖北 郭辉 王莉 FZ02 3 129 湖北 郭辉 王莉 FZ04
再反填充,将数据还原:订单号 发票号 部门 业务员 开票人 产品 1 127 江苏 张三 李四 FZ01 1 FZ02 1 FZ03 2 128 湖北 郭辉 王莉 FZ01 3 129 湖北 郭辉 王莉 FZ02 3 FZ04
填充:update aset 发票号=b.发票号,部门=b.部门,业务员=b.业务员,开票人=b.开票人from tablename a,tablkename bwhere (a.发票号 is null or a.发票号='')and a.订单号=b.订单号and b.发票号 is not null and b.发票号<>''
反填充:update aset 发票号=null,部门=null,业务员=null,开票人=nullfrom tablename awhere exists (select 1 from tablenamewhere 订单号=a.订单号and 产品<a.产品)
查询“最新数据”的SQL语句写法
一表有以下数据(各城市的气温):
CITY DATE C
武汉 1 30
上海 1 32
南京 1 31
北京 1 29
上海 2 29
南京 2 38
北京 2 31
南京 3 30
北京 3 31
现在需要查询各个城市的最近一次(最新的)气温信息,即查询结果是:
--方法一:
Select * From TableName A Where Not Exists(Select CITY From TableName Where CITY = A.CITY And [DATE] > A.[DATE])
--方法二:
Select * From TableName A Where [DATE] = (Select Max([DATE]) From TableName Where CITY = A.CITY)
--方法三:
Select A.*
From TableName A
Inner Join
(Select CITY, Max([DATE]) As [DATE] From TableName Group By CITY) B
On A.CITY = B.CITY And A.[DATE] = B.[DATE]