страховой полис - PullRequest
       14

страховой полис

1 голос
/ 15 ноября 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] <=649, 2.13, 0),
   iif([0050 Fix No Hit].[Fix_No_Hit] <=699, 1.86, 0),
   iif([0050 Fix No Hit].[Fix_No_Hit] <=799, 1.47, 0),
   iif([0050 Fix No Hit].[Fix_No_Hit] <=849, 1.00, 0),
   iif([0050 Fix No Hit].[Fix_No_Hit] <=899, 0.82, 0),
   iif([0050 Fix No Hit].[Fix_No_Hit] >=900, 0.69, 0)
FROM [0050 Fix No Hit];

Еще раз получаю

    2.13 0 0 0 0 0 for policy 100
and 0 0 1.47 0 0 0 for policy 101 

но я просто хочу один столбец в качестве результата.

1 Ответ

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

Вам просто нужно вложить свои iif() операторы:

SELECT HWData.[Policy Number],
   [0050 Fix No Hit].[Fix_No_Hit],
   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))))))
FROM [0050 Fix No Hit];
...