lexxora
Дата: 09.09.2005 12:41:40
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 писать нельзя?
Polev
Дата: 09.09.2005 12:49:35
Похоже нужен
Sum(IIf(BD.[Принято письменное заявление]=1,
sum(IIf(isnull(Службы.[Служба ключ]),0,1)*Службы.Колвозаяв)
,0))
AS [Всего поступило]
Владимир Саныч
Дата: 09.09.2005 12:51:22
Дело не в IIF, а в полях, которые в нем перечислены, а в Group By не включены и никакая агрегатная функция для них не указана. В сообщении ведь сказано: "не включает ... как часть статистической функции или группы". Например, если в записях, образующих группу, поле Колвозаяв имеет разные значения, то какое из них брать?
lexxora
Дата: 09.09.2005 13:03:30
adv |
adv | Службы.[Служба ключ] is null |
|
тоже можно поставить в where тогда вообще остантся sum(Службы.Колвозаяв) |
Запрос выглядит полность так:
sum(IIf(isnull(Службы.[Служба ключ]),0,1)*Службы.Колвозаяв),
sum(IIf(isnull(Службы.Номер),0,1)*Службы.Колвозаяв))
AS [Всего поступило]
lexxora
Дата: 09.09.2005 13:04:42
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 [Всего поступило]