Sql 如何基于多个子查询的结果集更新表的多条记录
我必须更新表Contract的10行和3个字段 每10行必须使用不同的值进行更新Sql 如何基于多个子查询的结果集更新表的多条记录,sql,postgresql,Sql,Postgresql,我必须更新表Contract的10行和3个字段 每10行必须使用不同的值进行更新 update contract_equipment_purchase set date_shipped = ( select lat.tstamp from lease_asset la join CR983_TMP tmp on la.serial_num=tmp.serial join (select lease_asset_id ,max(tstamp) as ts
update contract_equipment_purchase set date_shipped = (
select lat.tstamp from lease_asset la join CR983_TMP tmp on la.serial_num=tmp.serial join
(select lease_asset_id ,max(tstamp) as tstamp from lease_asset_transaction where status='Placed' group by lease_asset_id)
lat on la.id=lat.lease_asset_id join lease_asset_status las on las.id=la.id and las.status<>'Out of Service' ),
lease_asset_id= (
select la.id from lease_asset la join CR983_TMP tmp on la.serial_num=tmp.serial join
lease_asset_status las on las.id=la.id and las.status<>'Out of Service' ),
comprehensive_expiration_date='2013-10-31'
where id_contract in (
select cep.id_contract from contract_equipment_purchase cep join contract c on cep.id_contract =c.id_contract and c.id_contract_type=10
join facilities f on f.id=c.id_facility
join CR983_TMP crtmp on crtmp.account=f.accounting_id);
我面临的主要问题是所有子查询都会给出多个结果,因为我必须用不同的值更新多行。
我怎样才能做到这一点呢?这种语法应该能提供您想要的东西
update contract
set contract.account = s.account,
shipitem = i.item,
date='2013-3-25'
from contract c
inner join shippertable s on c.account = s.account
inner join itemtable i on c.item = i.item
where contractname = (select name from customers where)
请在子查询中发布您想要的WHERE子句SQL更新为WHERE!如果不是c.account=s.account上的内部join shippertable s,而是c.account上的内部join shippertable s=从客户中选择s.account,其中。。这个子查询返回多条记录,它会工作吗?还是我要用?