update T_SthInStorage_Value
Set T_SthInStorage_Value.原料最新价格=T_Invoice.价格
from T_SthInStorage_Value, T_Invoice
where T_SthInStorage_Value.仓库储存物ID=T_Invoice.仓库储存物IDT_Invoice包含这些字段:仓库储存物ID,价格,开票年,开票月,开票日
T_SthInStorage_Value包含这些字段:仓库储存物ID,原料最新价格如何保证批量更新得到的是:最后一次的结算价格?用视图或者建临时表也行。现在好像也冇发现错,可是不保把啊,这只是因为一般来说时间近的输入晚,后更新。
可一个反例就...我曾想用Order By来保障最后更新时间最近的,update和建立视图都 不让我用Order By!
Order By T_Invoice.仓库储存物ID
,T_Invoice.开票年
,T_Invoice.开票月
,T_Invoice.开票日
在关键字 'Order' 附近有语法错误。批量更新得到的是 最后一次结算价格
Set T_SthInStorage_Value.原料最新价格=T_Invoice.价格
from T_SthInStorage_Value, T_Invoice
where T_SthInStorage_Value.仓库储存物ID=T_Invoice.仓库储存物IDT_Invoice包含这些字段:仓库储存物ID,价格,开票年,开票月,开票日
T_SthInStorage_Value包含这些字段:仓库储存物ID,原料最新价格如何保证批量更新得到的是:最后一次的结算价格?用视图或者建临时表也行。现在好像也冇发现错,可是不保把啊,这只是因为一般来说时间近的输入晚,后更新。
可一个反例就...我曾想用Order By来保障最后更新时间最近的,update和建立视图都 不让我用Order By!
Order By T_Invoice.仓库储存物ID
,T_Invoice.开票年
,T_Invoice.开票月
,T_Invoice.开票日
在关键字 'Order' 附近有语法错误。批量更新得到的是 最后一次结算价格
还是获取T_Invoice这个表时间最近
Set T_SthInStorage_Value.原料最新价格=T_Invoice.价格
from T_SthInStorage_Value, (select * from T_Invoice Order By T_Invoice.仓库储存物ID
,T_Invoice.开票年
,T_Invoice.开票月
,T_Invoice.开票日) as T_Invoice
where T_SthInStorage_Value.仓库储存物ID=T_Invoice.仓库储存物ID
and
还是获取T_Invoice这个表时间最近---我是想用T_Invoice这个表时间最近的《价格》字段值,去更新T_SthInStorage_Value里面的《原料最新价格》字段
into #tmp
from T_Invoice t
where not exists(select 1 from T_Invoice where 仓库储存物ID=t.仓库储存物ID and 时间>t.时间)update T_SthInStorage_Value
Set T_SthInStorage_Value.原料最新价格=#tmp.价格
from T_SthInStorage_Value, #tmp
where T_SthInStorage_Value.仓库储存物ID=#tmp.仓库储存物ID
服务器: 消息 1033,级别 15,状态 1,行 5
除非同时指定了 TOP,否则 ORDER BY 子句在视图、内嵌函数、派生表和子查询中无效。
可怜我的T_Invoice是个派生表!
服务器: 消息 1033,级别 15,状态 1,行 5
除非同时指定了 TOP,否则 ORDER BY 子句在视图、内嵌函数、派生表和子查询中无效。
可怜我的T_Invoice是个派生表!
update T_SthInStorage_Value
Set T_SthInStorage_Value.原料最新价格=T_Invoice.价格
from T_SthInStorage_Value, (select top 1 * from T_Invoice Order By T_Invoice.仓库储存物ID
,T_Invoice.开票年
,T_Invoice.开票月
,T_Invoice.开票日) as T_Invoice
where T_SthInStorage_Value.仓库储存物ID=T_Invoice.仓库储存物ID
Set T_SthInStorage_Value.原料最新价格=T_Invoice.价格
from T_SthInStorage_Value, (select top 1 * from T_Invoice Order By T_Invoice.仓库储存物ID
,T_Invoice.开票年
,T_Invoice.开票月
,T_Invoice.开票日) as T_Invoice
where T_SthInStorage_Value.仓库储存物ID=T_Invoice.仓库储存物ID
(所影响的行数为 1 行)-这个就更新了一个仓库储存物ID,-我要把 各个仓库储存物ID的价格都更新到最新!----这个可以:开票年*1000+开票月*100+开票日组合成时间