Использование SQLExpress 2017
У меня есть несколько продуктов, распределенных по складам, и я хотел бы узнать, сколько товаров нужно будет складировать для удовлетворения продаж за определенный период.
Need pr. warehouse = Stock - CustomerOrders + SupplierOrders - SumOfSalesInPeriod
Теперь я хотел бы подвести итог для каждого продукта, но меня не интересуют склады, где потребность уже удовлетворена, поэтому я хочу только отрицательные значения, но у меня есть некоторые проблемы с тем, чтобы заставить его работать, поскольку меня встречают Ошибки Multipart Identifier.
Использование отличного ключевого слова также заставляет меня думать, что я делаю слишком много вычислений, и должен быть лучший способ сделать это.
declare @fromDate date = '1900-01-01 12:00:00';
declare @toDate date = '3000-01-01 12:00:00';
select *,
balance =
(select
turn = sum(TurnOver)
from (
select
WarehouseStocks.Id,
TurnOver = WarehouseStocks.Qty
- WarehouseStocks.OrderedByCustomersQty
+ WarehouseStocks.OrderedFromSuppliersQty
- isnull((select Sum(StockEntries.Qty)
from StockEntries
where
StockEntries.Type = 1
and StockEntries.ProductId = WarehouseStocks.Id
and WarehouseStocks.WarehouseId = StockEntries.WarehouseId
and StockEntries.Date >= @fromDate
and StockEntries.Date <= @toDate), 0)
from WarehouseStocks) Product where TurnOver < 0
group by Product.Id) tp where Products.Id = tp.Id)
from Products