Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Можно iif в iifе  [new]
lexxora
Member

Откуда: xrumer2017.ru
Сообщений: 325
Access 2003, WinXP

При выполнении запроса выдается:
Попытка выполнить запрос, который не включает указанное выражени
'If(BD.[Принято письменное заявление]=1,
sum(IIf(isnull(Службы.[Служба ключ]),0,1)*Службы.Колвозаяв)
,0)' как часть статистической функции или группы.

Сам запрос.

SELECT [Справочник районы].горрайорган,


IIf(BD.[Принято письменное заявление]=1,
sum(IIf(isnull(Службы.[Служба ключ]),0,1)*Службы.Колвозаяв)
,0)
AS [Всего поступило]

FROM [Справочник районы] INNER JOIN (BD INNER JOIN Службы ON BD.Ключ=Службы.Ключ) ON [Справочник районы].[Горрайорган ключ]=BD.[Горрайорган ключ]
WHERE (((BD.[Дата приёма]) Between Forms![Параметры отчёта]!fdataplat And Forms![Параметры отчёта]!fdatauch))
GROUP BY [Справочник районы].горрайорган;

Что получается IIF в IIF писать нельзя?
9 сен 05, 12:41    [1862718]     Ответить | Цитировать Сообщить модератору
 Re: Можно iif в iifе  [new]
Polev
Member

Откуда:
Сообщений: 1359
Похоже нужен
Sum(IIf(BD.[Принято письменное заявление]=1,
sum(IIf(isnull(Службы.[Служба ключ]),0,1)*Службы.Колвозаяв)
,0))
AS [Всего поступило]
9 сен 05, 12:49    [1862785]     Ответить | Цитировать Сообщить модератору
 Re: Можно iif в iifе  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
Дело не в IIF, а в полях, которые в нем перечислены, а в Group By не включены и никакая агрегатная функция для них не указана. В сообщении ведь сказано: "не включает ... как часть статистической функции или группы". Например, если в записях, образующих группу, поле Колвозаяв имеет разные значения, то какое из них брать?
9 сен 05, 12:51    [1862799]     Ответить | Цитировать Сообщить модератору
 Re: Можно iif в iifе  [new]
adv
Member

Откуда:
Сообщений: 3333
BD.[Принято письменное заявление]=1
можно поставить в where
В поле запроса:
sum(IIf(isnull(Службы.[Служба ключ]),0,1)*Службы.Колвозаяв)
9 сен 05, 12:52    [1862806]     Ответить | Цитировать Сообщить модератору
 Re: Можно iif в iifе  [new]
adv
Member

Откуда:
Сообщений: 3333
adv
Службы.[Служба ключ] is null

тоже можно поставить в where
тогда вообще остантся
sum(Службы.Колвозаяв)
9 сен 05, 12:59    [1862868]     Ответить | Цитировать Сообщить модератору
 Re: Можно iif в iifе  [new]
lexxora
Member

Откуда: xrumer2017.ru
Сообщений: 325
Polev
Похоже нужен
Sum(IIf(BD.[Принято письменное заявление]=1,
sum(IIf(isnull(Службы.[Служба ключ]),0,1)*Службы.Колвозаяв)
,0))
AS [Всего поступило]


Это не прокатило!
9 сен 05, 13:01    [1862896]     Ответить | Цитировать Сообщить модератору
 Re: Можно iif в iifе  [new]
lexxora
Member

Откуда: xrumer2017.ru
Сообщений: 325
adv
adv
Службы.[Служба ключ] is null

тоже можно поставить в where
тогда вообще остантся
sum(Службы.Колвозаяв)


Запрос выглядит полность так:

sum(IIf(isnull(Службы.[Служба ключ]),0,1)*Службы.Колвозаяв),

sum(IIf(isnull(Службы.Номер),0,1)*Службы.Колвозаяв))

AS [Всего поступило]
9 сен 05, 13:03    [1862911]     Ответить | Цитировать Сообщить модератору
 Re: Можно iif в iifе  [new]
lexxora
Member

Откуда: xrumer2017.ru
Сообщений: 325
lexxora
adv
adv
Службы.[Служба ключ] is null

тоже можно поставить в where
тогда вообще остантся
sum(Службы.Колвозаяв)


Запрос выглядит полность так:

sum(IIf(isnull(Службы.[Служба ключ]),0,1)*Службы.Колвозаяв),

sum(IIf(isnull(Службы.Номер),0,1)*Службы.Колвозаяв))

AS [Всего поступило]


Тоесть так:
IIf(BD.[Принято письменное заявление]=1,

sum(IIf(isnull(Службы.[Служба ключ]),0,1)*Службы.Колвозаяв),

sum(IIf(isnull(Службы.Номер),0,1)*Службы.Колвозаяв))

AS [Всего поступило]
9 сен 05, 13:04    [1862921]     Ответить | Цитировать Сообщить модератору
 Re: Можно iif в iifе  [new]
lexxora
Member

Откуда: xrumer2017.ru
Сообщений: 325
Владимир Саныч
Дело не в IIF, а в полях, которые в нем перечислены, а в Group By не включены и никакая агрегатная функция для них не указана. В сообщении ведь сказано: "не включает ... как часть статистической функции или группы". Например, если в записях, образующих группу, поле Колвозаяв имеет разные значения, то какое из них брать?


Я не понимаю что это и как. Подставлял Колвозаяв в GROUP BY. Не прокатывает.
9 сен 05, 13:12    [1862983]     Ответить | Цитировать Сообщить модератору
 Re: Можно iif в iifе  [new]
lexxora
Member

Откуда: xrumer2017.ru
Сообщений: 325
Polev
Похоже нужен
Sum(IIf(BD.[Принято письменное заявление]=1,
sum(IIf(isnull(Службы.[Служба ключ]),0,1)*Службы.Колвозаяв)
,0))
AS [Всего поступило]



Вот так прокатило!!!

SELECT [Справочник районы].горрайорган,

sum(IIf(BD.[Принято письменное заявление]=1,

IIf(isnull(Службы.[Служба ключ]),0,1)*Службы.Колвозаяв,

IIf(isnull(Службы.Номер),0,1)*Службы.Колвозаяв) )

AS [Всего поступило]


FROM [Справочник районы] INNER JOIN (BD INNER JOIN Службы ON BD.Ключ=Службы.Ключ) ON [Справочник районы].[Горрайорган ключ]=BD.[Горрайорган ключ]
WHERE (((BD.[Дата приёма]) Between Forms![Параметры отчёта]!fdataplat And Forms![Параметры отчёта]!fdatauch))
GROUP BY [Справочник районы].горрайорган;
9 сен 05, 13:25    [1863078]     Ответить | Цитировать Сообщить модератору
 Re: Можно iif в iifе  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
lexxora
Я не понимаю что это и как. Подставлял Колвозаяв в GROUP BY. Не прокатывает.

Я говорил "например". Там есть и другие поля.
9 сен 05, 13:35    [1863140]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить