表如下
voucherno status
00001 0
00002 1
00003 0
00004 0
00005 1
00006 1
00007 1
类似于银行存折的状态,0代表库存,1代表已用,其他的还有作废、注销等
想做一个数据统计的SQL,获取的结果如下
起始印刷号 终止印刷号 数量 状态
00001 00001 1 0
00002 00002 1 1
00003 00004 2 0
00005 00007 3 1
voucherno status
00001 0
00002 1
00003 0
00004 0
00005 1
00006 1
00007 1
类似于银行存折的状态,0代表库存,1代表已用,其他的还有作废、注销等
想做一个数据统计的SQL,获取的结果如下
起始印刷号 终止印刷号 数量 状态
00001 00001 1 0
00002 00002 1 1
00003 00004 2 0
00005 00007 3 1
解决方案 »
- oracle触发器 表示 搞不定啊
- 动态行转列问题
- 如何设置将oracle中指定表加载到内存,提高查询性能?
- 使用sqlloader导入数据时,如何判断导入的数据文件到达结尾
- [求助]用flashback恢复被删除的表
- 请教一个比较难的SQL语句~
- 不支持中文吗??怪问题!!
- Linux下Oracle8i安装的问题:看不到字符!怎么回事啊!
- pl/sql高手请指教!这样简单的过程函数为什么就不行呢?
- 请问有谁考过OCP认证, 谈谈你们的想法和看法! 让我们一起交流好吗?
- 查询优化方面的书籍
- racle.sql.BLOB blob = (oracle.sql.BLOB) b;这里报classCastException
from
(select status,voucherno,to_number(voucherno)-row_number() over(partition by status order by voucherno) rn from a)
group by status,rn
order by 1
select min(起始印刷号) 起始印刷号,终止印刷号 from (
select a.voucherno 起始印刷号,
isnull((select min(voucherno) - 1 from
t_voucher b
where b.voucherno >a.voucherno and a.status <> b.status),
(select max(voucherno) from t_voucher)) 终止印刷号
from t_voucher a) c
group by 终止印刷号) d,t_voucher e
where d.终止印刷号 = e.voucherno