Случай, когда формула в SQL - PullRequest
0 голосов
/ 02 ноября 2018

Можете ли вы проверить, правильно ли я понял мою формулу? Логика должна быть такова: если имя элемента WEB, QTYORDERED должен быть разделен на 4 стека

В моем примере я получил заказ, который равен только 1, но в результате отображается 0. (

Правильный результат должен быть 0,25 правильно?

CASE
   WHEN dbo.WorkOrderDetails.ItemNo = 'Web' 
      THEN ROUND(dbo.WorkOrderDetails.QtyOrdered / 4, 0)  
      ELSE dbo.WorkOrderDetails.QtyOrdered 
END AS NumberofItems

1 Ответ

0 голосов
/ 02 ноября 2018

Что такое тип данных вашего QtyOrdered столбца? Если это INT - тогда вы выполняете целочисленное деление (QtyOrdered / 4), а если значение QtyOrdered равно 1, 2 или 3, это приведет к 0 .

Если вы хотите, чтобы ваши результаты были с дробными значениями, вам нужно использовать дробные дивиденды - как это:

CASE
   WHEN dbo.WorkOrderDetails.ItemNo = 'Web' 
      THEN ROUND(dbo.WorkOrderDetails.QtyOrdered / 4.0, 0)  
      ELSE dbo.WorkOrderDetails.QtyOrdered         ^^^^
END AS NumberofItems

Это превратит QtyOrdered = 1 в 0,25 и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...