在存储过程中遇到问题,急救!!!!
需求说明:
有一个销售的一个例子
------------------------------------------------------------
seq dealer proid qty
1 D1 123 1
2 D1 123 -1
3 D1 123 1
4 D2 234 1
5 D2 234 -1
6 D3 234 1
我举了两个比较特殊的例子,现在多上面的数据进行说明
seq 是每条记录的唯一标识
proid 在表中表示一个产品,并且在这个表中proid其实只有一个产品
qty为1表示入账,-1表示销账
如产品123, 是由D1 入-〉销-〉入 所以目的就是返回seq=3
如产品234 由D2 入-〉销, D3 入 所以返回的返seq=6 的纪录
然后将seq=3 和seq=6 插入到另一个表示处理完成的表中。
(仅对这个比较特殊的数据)我的思路是,对用游标得到第一条记录,然后查询
求出sum(qty) 结果为1, 然后在表中查询该proid的qty=1 的记录,
再取消dealer重复值, 则123 返回一个dealer , 234 返回两个dealer
这是发现无法实现需求。
首先,对于123, 返回两个相同的,将seq=1 或 seq=3 多可以插入到需要的表,但是如果返回两个seq , 在存储过程中,如何得到第一条记录的seq值呢???
对于234, 我就没有办法得到结果了。
所以我的思路进行不下去。同时,用游标必须要考虑下一条记录的proid值已经被处理过了
那么检查发现已经处理,如何继续向下移动游标呢,是不是在判断之后用 fetch next from ...
来下移呢?(我还没有来的及测试运行)
所以,希望大家给出帮助,
1、这个问题的正确,简单的解法
2、依据我的思路是否可以进行修正,因为我已经实现了一部分。
3、依据条件移动游标的正确做法是??
确实很急, 两天了,头都大了好几圈了
先谢了