select ORA-01427 :单行子查询返回多行 5

SELECTBO.VESSEL,BO.VOY,BO.ETD,BO.PORTLOAD,BO.PORTVIA,BO.PORTDEST,(SELECTBKCTN.PNUMFRO... SELECT BO.VESSEL,
BO.VOY,
BO.ETD,
BO.PORTLOAD,
BO.PORTVIA,
BO.PORTDEST,
(SELECT BKCTN.PNUM
FROM BKCTN
WHERE CTNSIZE = '20' AND BO.BOID = BKCTN.BOID(+) ) AS "20",
(SELECT BKCTN.PNUM
FROM BKCTN
WHERE CTNSIZE = '40' AND BO.BOID = BKCTN.BOID(+) ) AS "40",
BO.GWET
FROM BO
展开
 我来答
sxdtgsh
2012-07-16 · TA获得超过2221个赞
知道小有建树答主
回答量:913
采纳率:75%
帮助的人:801万
展开全部
(SELECT BKCTN.PNUM
FROM BKCTN
WHERE CTNSIZE = '20' AND BO.BOID = BKCTN.BOID(+) ) AS "20",
(SELECT BKCTN.PNUM
FROM BKCTN
WHERE CTNSIZE = '40' AND BO.BOID = BKCTN.BOID(+) ) AS "40",
上面这两个语句里面的查询结果是多行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flyingFish211
2012-07-16 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
Try this, it should be much more effective than yours

SELECT BO.VESSEL,
BO.VOY,
BO.ETD,
BO.PORTLOAD,
BO.PORTVIA,
BO.PORTDEST,
CASE WHEN CTNSIZE = 20 then BKCTN.PNUM ELSE NULL END,
CASE WHEN CTNSIZE = 40 then BKCTN.PNUM ELSE NULL END,
BO.GWET
FROM BO LEFT JOIN BKCTN ON BO.BOID = BKCTN.BOID
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bfb9204
2012-07-16 · TA获得超过718个赞
知道小有建树答主
回答量:1008
采纳率:66%
帮助的人:439万
展开全部
说明你的子查询返回的数据不止一条数据,而是多条数据库,
先检查下你的子查询结果是几条数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式