SQL Server语句转Oracle语句 ✀ORA-01427: 单行子查询返回多个行✀.

2025-02-24 02:17:07
推荐回答(5个)
回答1:

update (select d.FID as fid, d.FSerialNo as fserialno,m.FBillDetailID,m.FSerialNo
From tblProductOut m
Inner Join tblProductOutDetail d
On m.FID = d.FheaderID
Inner Join tbloutadjustdetail adjust
on m.FDate = adjust.FInDate
And m.FNo = adjust.FInNo
And d.FStockID = adjust.FStockID
And d.FPrice = adjust.FOldPrice)
where tbloutadjustdetail.FBillDetailID is null) set m.FBillDetailID=fid,
m.FSerialNo=fserialno;

回答2:

select d.FID, d.FSerialNo
From tblProductOut m
Inner Join tblProductOutDetail d
On m.FID = d.FheaderID
Inner Join tbloutadjustdetail adjust
on m.FDate = adjust.FInDate
And m.FNo = adjust.FInNo
And d.FStockID = adjust.FStockID
And d.FPrice = adjust.FOldPrice

看执行结果,在判断怎样修改…… 建议你到csdn问,那里专业人士多

回答3:

select d.FID, d.FSerialNo
From tblProductOut m
Inner Join tblProductOutDetail d
On m.FID = d.FheaderID
Inner Join tbloutadjustdetail adjust
on m.FDate = adjust.FInDate
And m.FNo = adjust.FInNo
And d.FStockID = adjust.FStockID
And d.FPrice = adjust.FOldPrice
这是你括弧里面的子查询,这个返回了超过一条数据,单独执行一下看看都是什么数据,是否都需要UPDATE,
是的话就用IN代替等值链接,
否的话呢加新的过滤条件到子查询里面,排除多条留下一条。

回答4:

不要用 = 用 in
向基本查询的话 SQL Server 和Qracle差不多的

回答5:

用in确实可以[url=http://www.baidu.com]in[/url]