我有一个表StockManagement看起来像这样
PId Qty Dateof Booking DateOfReturning
1 5 1 Jan 2013 3 Jan 2013
1 5 1 Jan 2013 4 Jan 2012
现在让我们假设我有10个产品A.我的表显示我从1月1日到1月3日发行了第5期产品A而从1月1日到1月4日又有5个产品。现在我的客户想要从4开始预订产品A. 1月1日至7月7日。正如您在表格中看到的那样,5产品A将于1月3日返回,因此我可以从1月4日开始发行5件产品。这是我想通过查询做的。
所以请帮助我获取两个日期之间的可用数量。
答案 0 :(得分:0)
select count(s1.qty) from StockManagement s1 inner join
StockManagement s2 on s1.PId=s2.PId
where to_date(s1.DateofBooking,'dd/mm/yyyy') not
between to_date(s2.DateofBooking,'dd/mm/yyyy') and
to_date(s2.DateOfReturning,'dd/mm/yyyy')
试试这个。同时我会试着给你发一个现场演示
答案 1 :(得分:0)
declare @BkDate datetime, @qty int, @Pid int
select @BkDate='04-Jan-2013', @qty=5, @Pid=1
select sum(Qty) AvailableQty
from StockManagement
where
Id=@Pid AND
@BkDate not between DateOfBooking and DateOfReturning
having sum(Qty)>=@qty