Nano Hash - криптовалюты, майнинг, программирование

Нахождение суммы на основе условия в Sql Server 2008

У меня есть эти столбцы в моей таблице

Person      Agent     Unit        BSP            Discount

578           0      000023      32689525       0.1
578           1      000025      17589656       1
579           0      000021      32689525       0.1
579           0      000020      17589656       1
581           0      000022      32689525       0.1
583           0      000024      17589656       1
578           11     000023q     32689525       0
578           12     000025a     17589656       0

На самом деле я должен рассчитать стимул для Person. Скажем, в случае выше 578. Поскольку было забронировано всего 4 единицы, из которых 3 с брокерами и 1 индивидуальный. Таким образом, со стороны брокера его вознаграждение составит 2500 индийских рупий за единицу, что составляет 3 * 2500 = 7500. Теперь идет часть скидки. См. пункты ниже:

Условия:

  1. Если скидка не была предоставлена, то 1% BSP будет выделен на поощрение продавцу.

  2. Если Скидка на бронирование составляет от 0,1% до 1%, то 0,75% BSP будет выделено на поощрение продавцу.

  3. Если Скидка на бронирование составляет от 1,1% до 2%, более 0,50% BSP будет выделено на поощрение Продавцу.

  4. Если Скидка на бронирование составляет от 2% и выше, то 0,25% BSP будет выделено на поощрение продавцу.

Из приведенных выше таблиц видно, что 578 забронировал 4 единицы, две со скидками и две без скидок.

Таким образом, его вознаграждение будет рассчитываться как:

  var incentive = total_no_of_units_booked_with_agent * 2500;

// since there might be a possibility that more than one units can be
// booked by a sales person.No we have to find if there is any discount 
// applied there, if its there, then extract the incentive for each unit 
//and total it using the above condition. For table shown we have
//since it has 4 records

  incentive = incentive + (.75% of BSP)+ (.75%of BSP)+(1% of BSP)+(1%of BSP) 

  • Можете ли вы показать желаемые результаты в дополнение к проблеме слова? 29.08.2013
  • @AaronBertrand Смотрите мой обновленный вопрос 29.08.2013

Ответы:


1

Для условной суммы просто используйте SUM с оператором CASE внутри него, чтобы обеспечить соблюдение ваших условий.

SELECT
  person,
  SUM(CASE WHEN discount  = 0.00 THEN 0.0100 * bsp
           WHEN discount <= 0.01 THEN 0.0075 * bsp
           WHEN discount <= 0.02 THEN 0.0050 * bsp
                                 ELSE 0.0025 * bsp END
      +
      CASE WHEN agent <> 0       THEN 2500.0
                                 ELSE    0.0       END)  AS incentive
FROM
  yourTable
GROUP BY
  person
28.08.2013
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..