sql исправить отрицательные значения - PullRequest
1 голос
/ 16 ноября 2011

Я бы хотел получить следующий результат:

Table:[0050 Fix No Hit].[Fix_No_Hit]
Policy Number:     Insurance Score:   Insurance Score Factor:
100                  500                     2.13
101                  720                     1.47
102                  815                     1.00
103                  900                     0.69

Используя приведенные ниже правила:

Table: Tier_InsuranceScore
Insurance Score Chart:                      Factor:                 
649 or below                           2.13
(i assume insurance score has to be greater than 0) 
650 to 699                             1.86
700 to 799                             1.47
800 to 849                             1.00
850 to 899                             0.82
900 or above                           0.69

Это то, что я имею до сих пор:

    SELECT HWData.[Policy Number], [0050 Fix No Hit].[Fix_No_Hit], 
       iif([0050 Fix No Hit].[Fix_No_Hit] < 0, "Invalid",
       iif([0050 Fix No Hit].[Fix_No_Hit] <= 649, 2.13,
       iif([0050 Fix No Hit].[Fix_No_Hit] <= 699, 1.86, 
       iif([0050 Fix No Hit].[Fix_No_Hit] <= 799, 1.47, 
       iif([0050 Fix No Hit].[Fix_No_Hit] <= 849, 1.00, 
       iif([0050 Fix No Hit].[Fix_No_Hit] <= 899, 0.82, 
       iif([0050 Fix No Hit].[Fix_No_Hit] >= 900, 0.69, 0)))))) AS [Insurance Score Factor]
    FROM [0050 Fix No Hit];

Я не могу исправить отрицательные значения.Я хочу, чтобы страховой балл был по крайней мере 0, поэтому, если у меня страховой балл -5, я получу сообщение об ошибке типа недействительный или что-то в этом роде.

1 Ответ

0 голосов
/ 16 ноября 2011

У меня вопрос по поводу отрицательных страховых баллов.Это то, что вы можете предотвратить попадание в вашу базу данных / таблицу?С тем, что вы говорите, страховой рейтинг должен быть положительным.Я думаю, что логика должна быть введена в качестве ограничения на столбец, чтобы обеспечить целостность данных на INSERT или UPDATE записей.

Если вы не можете это сделать, вы можете установитьInsurance Score Factor до 0 (или -1, или другое идентифицирующее значение) и проверьте это в коде вашего приложения, а затем сгенерируйте соответствующую ошибку?

Другой вариант - добавить:

WHERE [0050 Fix No Hit].[Fix_No_Hit] > 0

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

...