Я выполнение этого заявления на платформе ASP.NET с SQL ServerSQL SUM() функция всегда возвращает 0
SELECT id, size, color,
SUM(CASE WHEN storeID IN ('E13','E15','E10') THEN stock ELSE 0 END)
+ SUM(CASE WHEN storeID IN ('E13','E15','E10') THEN incoming ELSE 0 END)
- SUM(CASE WHEN storeID IN ('E13','E15','E10') THEN outgoing ELSE 0 END)
AS Total
FROM stocks
GROUP BY id, size, color
И это код, я использую, чтобы получить полученные значения
For Each rowStock In TableStocks.Rows
Dim product As New ProductInfo
With product
.id = rowStock("id")
.size = rowStock("size")
.color = rowStock("color")
.stock = rowStock("Total")
End With
Next
id
, size
и color
значения являются правильными, но результат функции SUM
всегда равен 0. Если я выполнить запрос на управление SQL Server это работает отлично.
Я попытался изменить
.stock = rowStock(3)
вместо
.stock = rowStock("Total")
, но я получаю тот же результат. Я не могу понять, что мне не хватает.
Что в 3 СУММ вернуться в индивидуальном порядке? – gbn
Кажется, что случаи возвращают ноль в заданном условии или значения, проверяют сумму всех значений в формуле отдельно. – Myra
@ gbn Первый SUM возвращает фактический запас для каждого продукта. Второй, возвращает количество единиц, заказанных производителю. Последний возвращает количество единиц, отправленных производителю из-за производственных дефектов. –