首页 > 数据库

先入先出(FIFO)的一种SQL语句查询算法

时间:2009-05-03 10:55:21  作者:ACMAIN_CHM  我要投稿
Linux初探欢迎您的投稿,投放方法请点击这里查看,我们会定期赠送精美小礼品给优秀的投稿作者。海纳百川 取则行远!LinuxGoo欢迎您的到来。
在论坛上几次碰到过类似的于FIFO问题,故共享一个有些"恶搞"的算法。在很多情况下,需要对一些记录,比如出入库记录,收付款记录进行先入先出的匹配。一般来说普通做法......
ActualIssureQty4Batch,
i.id
FROM (
SELECT id, marno, qty,
val(dsum('qty','tin','marno="'&marno&'" and id<='&id)) AS accQty,
accQty-qty AS paccQty
FROM tin
) AS i INNER JOIN (
SELECT id, marno, qty,
val(dsum('qty','tout','marno="'&marno&'" and id<='&id)) AS accQty,
accQty-qty AS paccQty
FROM tout
) AS o ON i.marno=o.marno and i.accQty>o.paccQty and i.paccQty<o.accQty
order by o.id,i.id

当然,也可以在查询中加上tin的价格等字段以满足实际的需求。

注意
这个方法,做为趣味在表中记录不多的情况尚可一用,如果是大量记录,则使用代码解决比较高效。

如果您需转载 先入先出(FIFO)的一种SQL语句查询算法,请注明来自LinuxGoo.com,其版权归原作者所有。请广大网友留言时遵纪守法,使用文明用语。如果您在应用中有什么问题,请在下面留言,我们会尽快解答。
来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
栏目热门