我想从某个表里(字段比较多)生成一个ref cursor
但是不能用一个select 实现,
比如
条件 数值 条件 数值
-------------------------------------------------------------------
本年新增加 20000 某段时间调出
本年减少 10000 某段时间调入
某段时间增加 3000
某段时间减少 4000
-------------------------------------------------------------------
二虚线之间的值都是要单独计算出来放入cursor 里的
我该怎么做呢?我对ref cursor 不了解,并且不知道时候可以一个一个往里面添加数值。
拜托!
但是不能用一个select 实现,
比如
条件 数值 条件 数值
-------------------------------------------------------------------
本年新增加 20000 某段时间调出
本年减少 10000 某段时间调入
某段时间增加 3000
某段时间减少 4000
-------------------------------------------------------------------
二虚线之间的值都是要单独计算出来放入cursor 里的
我该怎么做呢?我对ref cursor 不了解,并且不知道时候可以一个一个往里面添加数值。
拜托!
select .....??
因为2虚线之间的每一个值都要放单独存到ref cursor里,而且那些值需要不同的select 才能生成
因为这个生成后的表比较小,所以我想一个一个值加入到ref cursor 。但是我不知道该怎么加。
union all
select xx from bb
union all
select xx from cc
union all
select xx from dd??这个意思吗?
表一:
dw bm mc sl je rq
01 bm1 计算机 1 10000 2001-01-01
01 bm1 空调 2 20000 2002-01-01
01 bm1 计算机 2 20000 2003-01-01
01 bm2 打印机 1 10000 2004-01-01
01 bm2 计算机 1 10000 2002-01-01
01 bm4 电视机 1 4000 2003-01-01根据输入的时间段 rq1,rq2生成如下表:rq1='2002-12-12',rq2='2003-12-12'
——————————————————————————————
mc 起初余额 本期发生额 期末余额
计算机 20000 20000 40000
空调 20000 0 20000
打印机 0 0 0
电视机 0 4000 4000
——————————————————————————————我知道也应该用decode ,但是涉及到日期比较,我就不知道该怎么写了。
select flmc,jldw,
sum(decode(sign(bdrq-to_date(v_rqs,'YYYY-MM-DD')),-1,sl,0)) qcsl,
sum(decode(sign(bdrq-to_date(v_rqs,'YYYY-MM-DD')),-1,yz,0)) qcyz,
sum(decode(sign(bdrq-to_date(v_rqz,'YYYY-MM-DD')),1,sl,0)) qmsl,
sum(decode(sign(bdrq-to_date(v_rqz,'YYYY-MM-DD')),1,yz,0)) qmyz
from gdzckp group by flmc,jldw;