我有2个表,'Items'和'Itemldgr'。我想使用items.saleprice
中的最新itemldgr.purchaseprice
来更新itemldgr
。
这是一个简单的想法:
update items set items.saleprice = (itemldgr.purchaseprice * 1.30) from itemldgr,
items
where items.itemid = itemldgr.itemid
and itemldgr.docdate = (
select itemldgr.itemid,MAX(docdate)
from itemldgr
where itemldgr.docid = 'RR'
and itemldgr.netcost <> '0'
and itemldgr.qtyin <> '0'
group by itemldgr.itemid
order by itemid)`
答案 0 :(得分:1)
试试这个
update items
INNER JOIN itemldgr on items.itemid = itemldgr.itemid
set items.saleprice = itemldgr.purchaseprice * 1.30 ,
where itemldgr.docdate = (
select itemldgr.itemid,MAX(docdate)
from itemldgr
where itemldgr.docid = 'RR'
and itemldgr.netcost <> '0'
and itemldgr.qtyin <> '0'
group by itemldgr.itemid
order by itemid)
答案 1 :(得分:1)
通过选择进行更新时,请尝试在以下上下文中执行此操作:
UPDATE a
Set a.Column1 = b.Column2
FROM Table a
INNER JOIN Table b ON a.ID = b.aID
这是一个简单的方法, 对于您的查询,它将变成类似:
update b
set b.saleprice = (a.purchaseprice * 1.30)
from
itemldgr a
inner join items b ON a.itemid = b.itemid
WHERE a.docdate =
(
select MAX(docdate)
from itemldgr c
where c.docid = 'RR'
and c.netcost <> '0'
and c.qtyin <> '0'
and c.itemid = a.itemid
)