Инвентарь обновляется для каждого склада в течение недели. Неделя начинается со среды (12:00:00) до вторника (11:59:59 PM).
Если я выберу месяц октября, у него будет 5 сред, 2 октября должны быть данные с 25 сентября по 1 октября.
- Склад может обновлять запасы несколько раз в неделю, а затем получитьдата последнего изменения инвентаря
- Если склад не обновил инвентарь, получите дату последнего изменения инвентаря для новой недели.
Код:
CREATE TABLE WarehouseUpdate
(
WarehouseID INT
,WarehouseName VARCHAR(100)
,City VARCHAR(100)
,[State] VARCHAR(20)
,CurrentInventory INT
,ModifiedDate DATETIME2
)
SET @FromWed = DATEADD(DAY, - (DATEPART(dw, @ModifiedDate) + @@DATEFIRST - 4) % 7, @ModifiedDate);
SET @ToWed = DATEADD(DAY, - (DATEPART(dw, @ModifiedDate) + @@DATEFIRST - 4) % 7 + 7, @ModifiedDate);
INSERT INTO dbo.WarehouseUpdate
VALUES
(6541, 'XYZ','Huntsville','Alabama',658,'2019/10/07')
,(6541, 'XYZ','Huntsville','Alabama',941,'2019/10/08')
,(6417, 'ABC','Denver','Colorado',1001,'2019/09/26')
,(6541, 'XYZ','Huntsville','Alabama',745,'2019/09/29')
,(6589, 'JKL','Atlanta','Georgia',798,'2019/08/14')
/*Result should be for September 2019 (if the quantity is not updated for the warehouse, it should get CurrentInventory for last modified date), Inventory for Denver and Atlanta isn't updated after modified dates*/
For Wednesday 2nd
,(6541, 'XYZ','Huntsville','Alabama',745,'2019/09/29')
,(6417, 'ABC','Denver','Colorado',1001,'2019/09/26')
,(6589, 'JKL','Atlanta','Georgia',798,'2019/08/14')
For Wednesday 9th
(6541, 'XYZ','Huntsville','Alabama',941,'2019/10/08')
,(6417, 'ABC','Denver','Colorado',1001,'2019/09/26')
,(6589, 'JKL','Atlanta','Georgia',798,'2019/08/14')