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