Я хочу вернуть доступную стоимость акций через запрос, в котором сумма по заказам вычитается из общей суммы запасов, а сумма по заказу = NULL
преобразуется в 0
.Таким образом, если в заказах нет открытых позиций, он просто показывает общий запас.В противном случае он должен вычесть несколько товаров на складе.
Отказ от ответственности: Относительно плохо знаком с более сложными запросами, поэтому любое объяснение того, что я делаю здесь неправильно, будет невероятно полезным в будущем!
В настоящее время пытаясь запросить SQL Server, я дошел до того, что могу заставить работать большую часть запроса, кроме функции ISNULL
SELECT dbo.[Items].[Productcode Customer],
dbo.[Items].Description,
dbo.[Items].[Description 2],
dbo.[Items].[EAN Code],
(SELECT SUM(dbo.[Entry].[Quantity])
FROM dbo.[Entry]
WHERE dbo.[Logistic Items].No_ = dbo.[Entry].[Item SKU No_]) -
(SELECT SUM(dbo.[Order Lines].[Quantity (Base)])
FROM dbo.[Order Lines]
WHERE dbo.[Items].No_ = dbo.[Order Lines].[Item No_]
AND dbo.[Order Lines].[Document No_] LIKE '%UIT%') AS Quant_avail
FROM dbo.[Items]
LEFT JOIN dbo.[Order Lines] ON dbo.[Items].No_ = dbo.[Order Lines].[Master Item No_]
WHERE dbo.[Items].[Customer Code] = 'KL0134'
GROUP BY
"Items"."No_",
"Items"."Productcode Customer",
"Items".Description,
"Items"."Description 2",
"Items"."EAN Code"
Функция WHERE
предназначена для указания того, что толькоисходящие заказы должны быть вычтены.
Я получаю все поля, которые хочу, но в столбце Quant_avail отображается только NULL
.Это имеет смысл, потому что на заказах нет товаров.Все, что мне нужно сделать сейчас, это преобразовать поле NULL
в 0
at:
(SELECT SUM(dbo.[WMS Order Lines].[Quantity (Base)])
FROM dbo.[WMS Order Lines]
WHERE dbo.[Logistic Items].No_ = dbo.[WMS Order Lines].[Master Item No_]
AND dbo.[WMS Order Lines].[Document No_] LIKE '%UIT%') AS Quant_avail