mysql 递减查询_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:对于复杂查询的话,这样的语句效率是很低的,但是至少能实现,呵呵

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值