Try this?
SELECT si.ItemNumber, si.ItemTitle, sLoc.Location, sl.Quantity, sl.InOrderBook, sl.OnOrder, su.SupplierName, (sl.Quantity+sl.InOrderBook+sl.OnOrder) as TotalQty, sl.MinimumLevel, (sl.MinimumLevel-sl.Quantity+sl.InOrderBook+sl.OnOrder) as QtyToOrder, si.CategoryId ,il.BinRackNumber FROM StockItem si LEFT OUTER JOIN StockLevel sl on si.pkStockItemId = sl.fkStockItemId LEFT OUTER JOIN StockLocation sLoc on sl.fkStockLocationid = sLoc.pkStockLocationId LEFT OUTER JOIN ItemLocation il on il.fkStockItemId = si.pkStockItemID AND il.fkLocationId = sLoc.pkStockLocationId LEFT OUTER JOIN ItemSupplier pp on si.pkStockItemId = pp.fkStockItemId LEFT OUTER JOIN Supplier su on pp.fkSupplierId = su.pkSupplierID WHERE si.bLogicalDelete = 0 AND sl.Quantity + sl.InOrderBook + sl.OnOrder <= sl.MinimumLevel AND sl.MinimumLevel > -1 ORDER BY si.CategoryId, si.ItemNumber, sLoc.Location
Hello,
Thank you for your question.
You can try this query as well:
SELECT
si.ItemNumber,
si.ItemTitle,
sLoc.Location,
'Bin Locn' = ISNULL(il.BinRackNumber,''),
'In stock' = sl.Quantity,
'In Open Orders' = sl.InOrderBook,
'Due' = sl.OnOrder,
sl.MinimumLevel,
'Min Required' = (sl.MinimumLevel- (sl.Quantity-sl.InOrderBook) -sl.OnOrder),
c.CategoryName,
'Supplier' = ISNULL(sup.SupplierName,''),
'Supplier code' = ISNULL(iSup.SupplierCode,''),
'Supplier Barcode' = ISNULL(iSup.SupplierBarcode,''),
'Purchase Price ' = ISNULL(iSup.KnownPurchasePrice,''),
'Min Order Qty' = ISNULL(iSup.SupplierMinOrderQty,''),
'Pack Size'= ISNULL(iSup.SupplierPackSize,'')
FROM
StockItem si WITH (NOLOCK)
INNER JOIN ProductCategories c WITH (NOLOCK) ON c.CategoryId = si.CategoryId
LEFT OUTER JOIN StockLevel sl WITH (NOLOCK) ON si.pkStockItemId = sl.fkStockItemId
LEFT OUTER JOIN StockLocation sLoc WITH (NOLOCK) ON sl.fkStockLocationid = sLoc.pkStockLocationId
LEFT OUTER JOIN ItemLocation il WITH (NOLOCK) ON il.fkStockItemId = si.pkStockItemID AND il.fkLocationId = sLoc.pkStockLocationId
LEFT OUTER JOIN ItemSupplier iSup WITH (NOLOCK) ON iSup.fkStockItemId = si.pkStockItemID AND iSup.IsDefault = 1
LEFT OUTER JOIN Supplier sup WITH (NOLOCK) ON sup.pkSupplierID = iSup.fkSupplierID AND sup.bLogicalDelete = 0
WHERE
si.bLogicalDelete = 0
AND (sl.MinimumLevel - (sl.Quantity-sl.InOrderBook) - sl.OnOrder) >= sl.MinimumLevel
AND sl.MinimumLevel > 0
ORDER BY
c.CategoryName, si.ItemNumber, sLoc.Location
Hope it helps!
Kind regards,
Julietta
Technical Support
Thank you both of you for the answers. Helps a lot!!
J Phipps
Hi,
I am trying to create a custom script in order to pull back a quick list of inventory products which have stock levels lower than the minimums we have set in Linnworks.net (i.e. a low inventory report). We have over 50 suppliers so this allow us to keep inventory 'in stock' more efficiently. I am struggling getting the report to show the 'Supplier' and 'Supplier Code' titles however from the inventory. Here is what I have got so far, could anyone suggest a tweak??
SELECT
si.ItemNumber, si.ItemTitle, sLoc.Location, sl.Quantity, sl.InOrderBook, sl.OnOrder, (sl.Quantity+sl.InOrderBook+sl.OnOrder) as TotalQty, sl.MinimumLevel, (sl.MinimumLevel-sl.Quantity+sl.InOrderBook+sl.OnOrder) as QtyToOrder, si.CategoryId, il.BinRackNumber
FROM
StockItem si
LEFT OUTER JOIN StockLevel sl on si.pkStockItemId = sl.fkStockItemId
LEFT OUTER JOIN StockLocation sLoc on sl.fkStockLocationid = sLoc.pkStockLocationId
LEFT OUTER JOIN ItemLocation il on il.fkStockItemId = si.pkStockItemID AND il.fkLocationId = sLoc.pkStockLocationId
WHERE
si.bLogicalDelete = 0
AND
sl.Quantity + sl.InOrderBook + sl.OnOrder <= sl.MinimumLevel
AND
sl.MinimumLevel > -1
ORDER BY
si.CategoryId, si.ItemNumber, sLoc.Location
1 person likes this idea