select 表关联查询能正常返回结果
SELECT 科室 AS 名称,
round(SUM(金额) / 10000, 2) AS 总收入,
round(SUM(DECODE(TT.名称, '药品费', 金额, 0)) / 10000, 2) AS 药品收入,
round(SUM(DECODE(TT.名称, '药品费', 0, 金额)) / 10000, 2) AS 非药收入
FROM (SELECT DA.系统序号, NVL(KS.名称, '未知') AS 科室
FROM INQ_D住院档案 DA
LEFT JOIN DOC_T科室档案 KS
ON KS.系统序号 = DA.当前科室I
UNION ALL
SELECT DA.系统序号, NVL(KS.名称, '未知') AS 科室
FROM INQ_D住院档案Z DA
LEFT JOIN DOC_T科室档案 KS
ON KS.系统序号 = DA.当前科室I) T
INNER JOIN (SELECT JSLB.住院序号I,
FB.名称,
SUM(FYMX.执行金额 * SIGN(JSLB.结算总额)) AS 金额
FROM inq_d住院费用明细 FYMX
INNER JOIN inq_d住院结算明细 JSMX
ON FYMX.系统序号 = JSMX.明细序号I
INNER JOIN inq_d住院结算列表 JSLB
ON JSMX.结算序号I = decode(JSLB.冲销状态N,
2,
JSLB.冲销序号I,
JSLB.系统序号)
INNER JOIN doc_t收费项目价格表 JG
ON JG.系统序号 = FYMX.收费项目序号I
INNER JOIN doc_t收费项目 XM
ON JG.项目序号I = XM.系统序号
INNER JOIN DOC_VT费用类别_院长查询 FB
ON XM.费用类别I = FB.系统序号
GROUP BY FB.名称, JSLB.住院序号I
UNION ALL
SELECT JSLB.住院序号I,
FB.名称,
SUM(FYMX.执行金额 * SIGN(JSLB.结算总额)) AS 金额
FROM inq_d住院费用明细Z FYMX
INNER JOIN inq_d住院结算明细 JSMX
ON FYMX.系统序号 = JSMX.明细序号I
INNER JOIN inq_d住院结算列表 JSLB
ON JSMX.结算序号I = decode(JSLB.冲销状态N,
2,
JSLB.冲销序号I,
JSLB.系统序号)
INNER JOIN doc_t收费项目价格表 JG
ON JG.系统序号 = FYMX.收费项目序号I
INNER JOIN doc_t收费项目 XM
ON JG.项目序号I = XM.系统序号
INNER JOIN DOC_VT费用类别_院长查询 FB
ON XM.费用类别I = FB.系统序号
GROUP BY FB.名称, JSLB.住院序号I) TT
ON T.系统序号 = TT.住院序号I
GROUP BY ROLLUP(科室)
加上行列转换 后
SELECT 汇总, 名称, 值
FROM (
ORDER BY 总收入 DESC) UNPIVOT(值 FOR 汇总 IN(select SUM(FYMX.执行金额 * SIGN(JSLB.结算总额)) , 药品收入, 非药收入) )
报ora-03113 怀疑oracle内部错误导致 ,请问这种问题是什么原因导致的,如何避免呢