Нужна помощь в настройке запроса Access - PullRequest
0 голосов
/ 30 октября 2019

Пример того, что я пытаюсь сделать, приведен ниже. Для каждого человека я хочу запрос, который будет рассматривать каждую причину и вычислять сумму баллов на основе: если AF присутствует, баллы будут рассчитываться следующим образом для Иоанна 10 + 20 + 30 + 40 + 50-60, т.е. А + В + С + D + EF. Если F не присутствует, то это прямая сумма очков (для Пола).

ID  name    points  reason
1   John    10  A
2   John    20  B
3   John    30  C
4   John    40  D
5   John    50  E
6   John    60  F
7   Paul    5   A
8   Paul    10  B
9   Paul    15  C
10  Paul    20  D
11  Paul    25  E

Ответы [ 2 ]

2 голосов
/ 31 октября 2019

Попробуйте:

Select [name], 
    Sum(IIF([reason] = "F", -[points], [points])) As TotalPoints
From YourTable
Group By [name]

Узнайте больше об iif здесь: https://support.office.com/en-us/article/iif-function-32436ecf-c629-48a3-9900-647539c764e3

0 голосов
/ 31 октября 2019

Нет никакой разницы между 10+20+30+40+50-60 и тем, что вы называете прямой суммой .

Итак, все, что вам нужно, это сгруппировать по имя:

Select [name], Sum([points]) As TotalPoints
From YourTable
Group By [name]
...