现在有个表T_Result(ProductName varchar(50),H0 decimal(18,2),T0 date,H1 decimal(18,2),T1 date)另外有一张表T_DATA(ProductName varchar(50),DataTime date,Price decimal(18,2))
提取每个产品最近时间前两条记录更新到上面的T_Result表下面的表我用如下SQL提取出数据:
select * from 
(select Row_Number() over(partition by ProductName order by DataTime desc) as RowNumber,* from T_DATA) a
Where RowNumber<=2但是我需要将RowNumber=1的数据更新到HO,TO字段,RowNumber=2的数据更新到H1,T1字段我下面的写法会报错,无法识别b:
update a
set a.T0=(select DataTime from b where RowNumber=1)
,a.H0=(select Price from b where RowNumber=1)
,a.T1=(select DataTime from b where RowNumber=2)
,a.H1=(select Price from b where RowNumber=2)
from T_Result a,
(select * from 
(select Row_Number() over(partition by ProductName order by DataTime desc) as RowNumber,* from T_DATA) a
Where RowNumber<=2) b
where a.ProductName=b.ProductName想问有没有比较好的SQL一次完成更新呢