0

私はこのように見えるStockManagementテーブルを持っています

PId          Qty             Dateof Booking           DateOfReturning
1              5               1 Jan 2013               3 Jan 2013
1              5               1 Jan 2013               4 Jan 2012

ここで、製品 A の数量が 10 あるとします。表が示すように、1 月 1 日から 1 月 3 日までの問題 5 の製品 A と、1 月 1 日から 1 月 4 日までの別の 5 つの製品 A がありました。 1 月。表でわかるように、5 つの製品 A は 1 月 3 日に返品されるため、1 月 4 日から 5 つの製品を発行できます。これが、クエリを使用して実行したいことです。

ですから、2 つの日付の間に利用可能な数量を取得するのを手伝ってください。

4

2 に答える 2

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 に答える
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 に答える