oracle输出查询返回多行,ORA-01427:单行子查询返回多行

SQL如下:

SELECT     SUM(RealNumber) AS 数量0

,SUM(inprice) AS 单价0

,SUM(RealNumber) * SUM(inprice) AS 金额0

,SUM(RealNumber) AS 数量1

,round(SUM(NumberIncludeTax) / SUM(RealNumber), 2) 单价1

,SUM(NumberIncludeTax) AS 金额1

,NVL(SUM(YRealNumber), 0) 数量2

,decode(NVL(SUM(YRealNumber), 0)

,0

,0.00

,round(NVL(SUM(YPriceIncludeTax), 0.00) /

SUM(YRealNumber)

,2)) 单价2

,NVL(SUM(YPriceIncludeTax), 0.00) AS 金额2

,nvl((SUM(RealNumber) - SUM(YRealNumber)), 0) 数量3

,0.00 单价3

,NVL((SUM(NumberIncludeTax) - SUM(YPriceIncludeTax)), 0.00) 金额3

FROM (SELECT a.DepCode

,a.operatetime

,b.returnnum

,a.billid

,a.billtype

,CASE

WHEN c.method < 'C' THEN

1

ELSE

NVL(t.realnumber, 0)

END realnumber

,NVL(b.PriceIncludeTax, 0.00) PriceIncludeTax

,NVL(b.NumberIncludeTax, 0.00) NumberIncludeTax

,(SELECT i.num

FROM t_invbillimeidetail i

,t_exterbill         e

WHERE i.billtype = 113

AND i.orgserialid = t.serialid

AND e.billstatus = 1

AND i.billid = e.billid

AND ORGBILLID = a.billid

AND goodscode = c.goodscode

AND nvl(goodsid, ' ') = nvl(d.goodsid, ' ')) YRealNumber

,(SELECT inprice

FROM t_invbillimeidetail i

,t_exterbill         e

WHERE I.billtype = 113

AND e.billstatus = 1

AND i.billid = e.billid

AND ORGBILLID = a.billid

AND goodscode = c.goodscode

AND i.orgserialid = t.serialid

AND nvl(goodsid, ' ') = nvl(d.goodsid, ' ')) YPriceIncludeTax

,T.PRICE INPRICE

,t.batchid

FROM t_exterbill         a

,T_ExterBillDetail   b

,t_goods             c

,t_invbillimeidetail d

,t_storeout          t

WHERE a.billtype = 133

AND a.billid = b.billid

AND a.billtype = b.billtype

AND b.billid = d.billid(+)

AND b.billtype = d.billtype(+)

AND b.goodscode = d.goodscode(+)

AND a.TradeModeCode = '1'

AND c.goodscode = b.goodscode

AND t.billid = a.billid

AND t.billtype = a.billtype

AND NVL(t.goodsid, 'gw') = nvl(d.goodsid, 'gw')

AND a.billstatus IN (1, 2, 3, 9)) vv;

单独执行VV(红色)那一块是正常的. 只要加上外面的SUM(随便加一个SUM)就会报ORA-01427。

求大神指点.

数据库版本:11.2.0.2.0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值