执行以下语句,要出现错误:
ora-00600:内部错误代码,自变量:[5213],[],[],[],[],[],[],[]
如果把UNION取消,又可以,感觉是数据量太大造成的,但对这种问题,应该如何查是哪里的问题的?
SELECT 库房id,药品id,批次, SUM(实际数量) AS 帐面数量 ,SUM(盘点数量) AS 盘点数量 ,
SUM(实际金额) AS 实际金额 ,SUM(实际差价) AS 实际差价 ,SUM(可用数量) As 可用数量,
max(批号) as 批号 ,max(产地) as 产地,max(效期) as 效期
FROM (SELECT a.库房id,b.药品id,NVL(批次, 0) AS 批次,a.实际数量,0 盘点数量,
a.实际金额,a.实际差价,a.可用数量,a.上次批号 AS 批号,a.上次产地 AS 产地,a.效期
FROM 药品库存 a,药品目录 b,药品信息 c
Where a.药品id = b.药品id AND b.药名id = c.药名id and
a.性质 = 1 AND
a.库房id + 0 = 324
UNION ALL
SELECT a.库房id,b.药品id,NVL(a.批次, 0) AS 批次,-SUM(DECODE(a.入出系数,1,a.实际数量 * a.付数,-a.实际数量 * a.付数)) AS 实际数量,
0 盘点数量,-SUM(DECODE(a.入出系数, 1, a.零售金额, -a.零售金额)) AS 实际金额,
-SUM(DECODE(a.入出系数, 1, a.差价, -a.差价)) AS 实际差价,0 AS 可用数量,
a.批号,a.产地,a.效期
FROM 药品收发记录 a,药品目录 b,药品信息 c,
(Select * From 药品储备限额 Where 库房ID + 0 = 324)
e
Where a.药品id = b.药品id AND b.药名id = c.药名id
and b.药品id = e.药品id(+)
GROUP BY a.库房id,b.药品id,a.批次,a.批号,a.产地,a.效期 )
GROUP BY 库房id, 药品id, 批次
|