2014-11-04 3 views
2

Я пытаюсь создать запрос, чем можно рассчитать количество дней в данном месяце, что конкретная позиция запаса была недоступна (например: № = 0).SQL: рассчитать количество дней в месяц без запаса

В настоящее время я разработал запрос, который может рассчитать количество дней, прошедших с сегодняшней даты, когда акции были недоступны, но то, что я пытаюсь рассчитать, в течение месяца, сколько дней было количество запасов = 0. а именно: месяц Jan - 5 января, 7 января и 20 января не было запасов для товара а - это означает, что количество дней в наличии был = 3.

Дополнительные детали:

В настоящее время я основываю свой запрос на определении уровней запасов последней транзакции (т. Е. Если при последней транзакции QTY of Stock = 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 

Мои мысли Существуют различные виды операций - одна из которых хорошая сделка получила. Возможно, можно рассчитать дни, когда Stock Qty был равен нулю и произошла транзакция, а затем подсчитать эту дату, пока не будут получены товары.

Мысли?

Thank you.

+4

Вы могли бы предоставить некоторые образцы своих данных? – pancho018

+1

Объясните свой стол. Вы говорите, что ищете «Нет = 0», но нет ссылки на «Нет». в вашем запросе. Опишите, что вы ищете в терминах столбцов в таблице, а не абстрактных концепциях, которые они представляют. –

+1

Укажите данные таблицы и некоторые фиктивные данные –

ответ

0
SELECT COUNT([StockItems].Qty_On_Hand 
From dbo.[Transactions] 
INNER JOIN [StockItems] ON [Transactions].[AccountLink] = [StockItems].[StockLink] 
WHERE [StockItems].Qty_On_Hand)=0 
Смежные вопросы