Sql实现递减查询

显示开发中经常碰到这样的问题

采购某项物品,但是是分批入库的,这时候有可能需要查询该项物品的入库情况列表

比如 物品     采购量   已入库量   剩余入库量   入库时间  。。。

        A         100      10            90             2011-05-09

        A         100      20            70             2011-05-10

        A         100      50            20             2011-05-11

        A         100      20            0               2011-05-12

     

 

实现如下:

  


Create Table Sam_Product
(
   UID    int   Identity(1,1) Primary Key,
   ProdName NVarchar(100),
   UsedQty   int,
   Remark   NVarchar(100)
)

Create Table Sam_StockIn
(
   UID   int   Identity(1,1) Primary Key,
   UnitID  int Foreign Key References Sam_Product(UID),
   StockedIn  int,
   StockDate  DateTime,
   Remark  NVarchar(100)
)

 

 

Insert Into  Sam_Product(ProdName,UsedQty,Remark)

Select 'jianpan' , 5,''

 

Insert into Sam_StockIn(UnitID,StockedIn,Stockate)

Select 1,1,'2011-05-09'

Union

Select 1,2,'2011-05-10'

Union

Select 1,2,'2011-05-11'

 

 

查询语句

Select a.UID,ProdName,UsedQty,StockedIn,

a.UsedQty - (Select Sum(StockedIn) From Sam_StockIn  where UnitID = b.UnitID and StockDate <= b.StockDate) as AliveQty,
StockDate From Sam_Product a inner join Sam_StockIn b on a.UID=b.UnitID

 

 

PS:对于复杂查询的话,这样的语句效率是很低的,但是至少能实现,呵呵

 

转载于:https://www.cnblogs.com/zyzhang/archive/2011/05/11/2043215.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值