Первоначальная публикация так простите меня, если это было задано раньше.
Я не новичок в написании SQL, но я также не эксперт.SQL Server - множественный SUM CASE WHEN
мне нужен лучший способ, чтобы написать это:
CASE
WHEN OrderQuantity + Week1Quantity >= CriteriaAmount THEN 1
WHEN OrderQuantity + Week1Quantity + Week2Quantity >= CriteriaAmount THEN 2
WHEN OrderQuantity + Week1Quantity + Week2Quantity + Week3Quantity >= CriteriaAmount THEN 3
WHEN OrderQuantity + Week1Quantity + Week2Quantity + Week3Quantity + Week4Quantity >= CriteriaAmount THEN 4
WHEN OrderQuantity + Week1Quantity + Week2Quantity + Week3Quantity + Week4Quantity + Week5Quantity >= CriteriaAmount THEN 5
WHEN OrderQuantity + Week1Quantity + Week2Quantity + Week3Quantity + Week4Quantity + Week5Quantity + Week6Quantity >= CriteriaAmount THEN 6
WHEN OrderQuantity + Week1Quantity + Week2Quantity + Week3Quantity + Week4Quantity + Week5Quantity + Week6Quantity + Week7Quantity > CriteriaAmount THEN 7
WHEN OrderQuantity + Week1Quantity + Week2Quantity + Week3Quantity + Week4Quantity + Week5Quantity + Week6Quantity + Week7Quantity + Week8Quantity >= CriteriaAmount THEN 8
ELSE 999
END
Его цель заключается, чтобы найти первую стадию, на которой цель достигнута, используя числовые значения из каждого столбца как нарастающий итог.
Таблица так:
Количество заказа неделя 1 Неделя 2 Неделя 3 (Предложил Target)
......... 5 ... ......... ..... 5 ...... ..... 5 ...... ..... 5 ..... . ............ 15 ............
........ 10 .......... . .... 10 ..... .... 10 ..... .... 10 ..... ........... .500 ...........
В приведенной выше таблице строка 1 даст ответ 2, поскольку для достижения цели требуется 2 недели.
Строка 2 приземлится на инструкцию ELSE, дающую 999, которая позже будет преобразована в ошибку.
Мне хотелось бы, чтобы это было лучше, поскольку у меня есть еще 52 столбца, чтобы пройти через вас, вы можете себе представить, что это свист белого пространства!
Спасибо, Адам
Дизайн стола ограничен 52 колонками - количество недель в году. Произнесите начальную сумму заказа на 1 бар. В основном это вычисление того, сколько марсовых баров будет вписываться в поле, предлагаемая цель - размер коробки. Предостережение заключается в том, что он должен работать для разных предметов размера, например, для twixs. Таким образом, я уже рассчитал комбинированный размер барсов и твинов на каждую неделю, теперь мне нужно как можно ближе подойти к этой сумме, чтобы не тратить в коробке свободное место. –
Даже с «единственными» 52 повторяющимися столбцами будет очень сложно писать инструкции sql против такой таблицы. Таблица сервера sql не является Excel. Если вы можете изменить дизайн стола сейчас, или вам придется использовать действительно обширные обходные пути каждый раз, когда вы используете эту таблицу. –
Вы можете предложить дизайн стола? Я не уверен, что понимаю. –