2014-11-04 88 views
2

我正在嘗試創建一個查詢,可以計算特定月份中某個特定庫存項目不可用的天數(即:No. = 0 )。SQL:計算一個月內沒有股票的天數

目前,我已經開發了一個查詢,可以計算從今天的日期,股票已經不可用的天數,但我試圖實際計算的是,在一個月內,有多少天的庫存數量= 0即:一月的月 - 1月5日,1月7日和1月20日,沒有庫存項目A - 這意味着天斷貨的數量= 3

額外的細節:

目前,我基於我的查詢來確定上次交易的庫存水平(即:如果在上次交易中庫存的數量= 0),則計算出交易日期和今天。

Select [StockItems].StockCode, 

Case When SUM([StockItems].Qty_On_Hand)=0 Then (Datediff(day, GETDATE(),MAX([Transactions].TransactionDate))) ELSE 0 END AS 'Days Out of Stock', 

From dbo.[Transactions] 

INNER JOIN [StockItems] 
    ON [Transactions].[AccountLink] = [StockItems].[StockLink] 

Where [StockItems].StockCode LIKE '%XXX%' 
AND [Transactions].TransactionDate>31/10/14 

Group By [StockItems].StockCode 

我的思想 有不同種類的交易 - 其中之一是一個很好的接收到的事務。也許有可能計算庫存數量爲零並且發生交易的日期,然後計算該日期,直到收到貨物。

想法?

謝謝。

+4

你能提供一些你的數據樣本嗎? – pancho018 2014-11-04 13:56:11

+1

解釋你的桌子。你說你正在尋找「號= 0」,但沒有提到「號」列中查詢。請根據表中的列描述您要查找的內容,而不是它們所代表的抽象概念。 – 2014-11-04 13:57:12

+1

提供表細節和一些虛擬數據 – 2014-11-04 14:03:39

回答

0
SELECT COUNT([StockItems].Qty_On_Hand 
From dbo.[Transactions] 
INNER JOIN [StockItems] ON [Transactions].[AccountLink] = [StockItems].[StockLink] 
WHERE [StockItems].Qty_On_Hand)=0