select * from table1 union all select * from table2
ORA-00937: 非单组分组函数 我用了group by,因为要计算各个机构的满期保费
SELECT c_dpt_cde,SUM(ROUND( ( TO_DATE('26-7月-06') - TO_DATE(TO_CHAR(t_insrnc_bgn_tm,'dd-mon-yy')) + 1 )/( TO_DATE(TO_CHAR(t_insrnc_end_tm,'dd-mon-yy')) - TO_DATE(TO_CHAR(t_insrnc_bgn_tm,'dd-mon-yy')) + 1 ) * n_prm,5)) as asd FROM t_ply_base GROUP BY c_dpt_cde UNION ALL SELECT c_dpt_cde,SUM(ROUND( FLOOR( TO_DATE('26-7月-06') - TO_DATE(TO_CHAR(t_insrnc_bgn_tm,'dd-mon-yy')) + 1 )/FLOOR( TO_DATE(TO_CHAR(t_insrnc_end_tm,'dd-mon-yy')) - TO_DATE(TO_CHAR(t_insrnc_bgn_tm,'dd-mon-yy')) + 1 ) * n_prm_var,5)) as asd FROM t_edr_base GROUP BY c_dpt_cde 写得比较烂,而且又长,其实我的意思相当于一张表的内容它分成了两张表来存放,计算的时候又要把两张表并在一起算~~~~我在讲什么啊。不知道你能不能理解。
select c_dpt_cde,max(你的那个算式) as asd from t_ply_base group by c_dpt_cde union all select c_dpt_cde,max(你的那个算式) as asd FROM t_edr_base GROUP BY c_dpt_cde
with aaa as (select c_dpt_cde,你的那个算式 as asd from t_ply_base union all select c_dpt_cde,你的那个算式 as asd FROM t_edr_base ) select c_dpt_cde,max(asd) from aaa group by c_dpt_cde
left join
union all
select * from table2
我用了group by,因为要计算各个机构的满期保费
union all
select c_dpt_cde,max(你的那个算式) as asd FROM t_edr_base GROUP BY c_dpt_cde
union all
select c_dpt_cde,你的那个算式 as asd FROM t_edr_base
)
select c_dpt_cde,max(asd) from aaa group by c_dpt_cde