Использование IIF в Access дает мне ошибку агрегатной функции

SELECT Bot.BetType, 
   Sum(Bot.Result) AS Won, 
   IIf([Bot]![Market Name] Like "*Place*", "Place", "Win") AS Type
FROM Bot
GROUP BY Bot.BetType, Type;

Получение ошибки:

Вы попытались выполнить запрос, который не включает указанное выражение If([Bot]![Market Name] Like "*Place*", "Place", "Win") как часть агрегатной функции.

В гугле результата не нашел. Если у вас есть вопросы, не стесняйтесь спросить.


person Jaanus    schedule 13.01.2013    source источник


Ответы (2)


Вы не можете использовать псевдонимы в GROUP BY:

SELECT Bot.BetType, 
   Sum(Bot.Result) AS Won, 
   IIf([Bot]![Market Name] Like "*Place*", "Place", "Win") AS Type
FROM Bot
GROUP BY Bot.BetType, IIf([Bot]![Market Name] Like "*Place*", "Place", "Win");
person Fionnuala    schedule 13.01.2013

Если вы используете подзапрос, я думаю, вы можете использовать псевдоним:

SELECT B.BetType, 
       Sum(B.Result) AS Won,
       type
from (select b.*, IIf([Bot]![Market Name] Like "*Place*", "Place", "Win") AS Type
      FROM Bot b
     ) b
GROUP BY b.BetType, Type;
person Gordon Linoff    schedule 13.01.2013