0

我有一张 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 期。现在我的客户想要从 1 月 4 日到 7 日预订产品 A一月。正如您在表中看到的,5 产品 A 将在 1 月 3 日返回,所以我可以从 1 月 4 日开始发布 5 产品。这就是我想通过查询来做的事情。

所以请帮助我获得两个日期之间的可用数量。

4

2 回答 2

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
于 2013-01-02T07:25:54.520 回答
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')

尝试这个。同时我会尝试给你发布一个现场演示

SQL_LIVE_DEMO

于 2013-01-02T07:06:22.650 回答