Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Упростить запрос. / 3 сообщений из 3, страница 1 из 1
05.11.2015, 04:11
    #39094789
Dennis S.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить запрос.
Добрый день.
Что-то я совсем запутался.
Понимаю, что огород нагородил, но. Написал запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
SELECT 
tmp.*, 
IIf([CountOfID]=1,"Enabled",IIf([countOfID]=2 And [contract_Type]="Internal","Enabled","Disabled")) AS IsEnabled
FROM tmp 
INNER JOIN 
(SELECT tmp.Consultant_Name, 
tmp.[Period Begin], 
tmp.[Period End], 
tmp.Record_Type, 
Count(tmp.ID) AS CountOfID
FROM tmp
GROUP BY tmp.Consultant_Name, 
tmp.[Period Begin], 
tmp.[Period End], 
tmp.Record_Type
ORDER BY tmp.Consultant_Name, 
tmp.[Period Begin], 
tmp.[Period End], 
tmp.Record_Type) AS qry_IntExtCatch 
ON (tmp.Record_Type = qry_IntExtCatch.Record_Type) 
    AND (tmp.[Period End] = qry_IntExtCatch.[Period End]) 
    AND (tmp.[Period Begin] = qry_IntExtCatch.[Period Begin]) 
    AND (tmp.Consultant_Name = qry_IntExtCatch.Consultant_Name)
ORDER BY tmp.Consultant_Name, 
tmp.[Period Begin], 
tmp.[Period End], 
tmp.Record_Type;



Нужно вывести подсчет по группировке из четырех полей:
Код: sql
1.
2.
3.
4.
tmp.Consultant_Name, 
tmp.[Period Begin], 
tmp.[Period End], 
tmp.Record_Type

и в случае двойки выставить по признаку [contract_Type] значение Enabled или Disabled.

Как бы этот огород прополоть без лишнего запроса?
Чую здесь не обойдется без DCount, но как это оформить, не понимаю.
...
Рейтинг: 0 / 0
05.11.2015, 07:40
    #39094832
4620
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить запрос.
Упростить - несложно, но, скорее всего, по времени выполнения, станет хуже.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT 
t1.*, 
IIf([CountOfID]=1,"Enabled",IIf([countOfID]=2 And [contract_Type]="Internal","Enabled","Disabled")) AS IsEnabled,
(select count(*) from tmp t2 
where t1.Consultant_Name=t2.Consultant_Name 
  and t1.[Period Begin]=t2.[Period Begin] 
  and t1.[Period End]=t2.[Period End] 
  and t1.Record_Type=t2.Record_Type) AS CountOfID
FROM tmp t1 
...
Рейтинг: 0 / 0
05.11.2015, 11:21
    #39095041
Dennis S.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить запрос.
Спасибо. Всё-таки ночами надо спать.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Упростить запрос. / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]