Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите написать интересный запрос / 5 сообщений из 5, страница 1 из 1
08.09.2006, 15:07
    #33974472
deadok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать интересный запрос
Даны таблицы:
Объект objects(ID int, Name varchar(50), ID_type int) и тип объекта type(ID int, Name varchar(50)).
В обеих таблицах ID – первичный ключ, а Name – уникальное.
objects.ID_type – внешний ключ к таблице type(поле ID).

необходимо:
Написать запрос, который выведет таблицу типа:
название_типа_объекта, количество_объектов при условии, что тип объекта – необязательное поле, а количество_объектов>1.


ЗАранее всем спасибо
...
Рейтинг: 0 / 0
08.09.2006, 15:44
    #33974634
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать интересный запрос
Запрос понятен, но есть к вам вопрос:
Если тип объекта – необязательное поле, то что какой смысл в количество_объектов>1 ?
Я понял, что количество_объектов = кол-во объектов заданного типа?
Или все объекты без типа отнести в один тип "БЕЗ ТИПА"?
С уважением, Алексей
...
Рейтинг: 0 / 0
11.09.2006, 08:08
    #33977045
deadok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать интересный запрос
Aleksey-KЗапрос понятен, но есть к вам вопрос:
Если тип объекта – необязательное поле, то что какой смысл в количество_объектов>1 ?
Я понял, что количество_объектов = кол-во объектов заданного типа?
Или все объекты без типа отнести в один тип "БЕЗ ТИПА"?
С уважением, Алексей

Результатом запрос должна быть таблица вида:
"тип объекта количество объектов этого типа"
Объекты не имеющие тип в количество не включаются!!!!
...
Рейтинг: 0 / 0
11.09.2006, 08:24
    #33977056
Помогите написать интересный запрос
deadok Aleksey-KЗапрос понятен, но есть к вам вопрос:
Если тип объекта – необязательное поле, то что какой смысл в количество_объектов>1 ?
Я понял, что количество_объектов = кол-во объектов заданного типа?
Или все объекты без типа отнести в один тип "БЕЗ ТИПА"?
С уважением, Алексей

Результатом запрос должна быть таблица вида:
"тип объекта количество объектов этого типа"
Объекты не имеющие тип в количество не включаются!!!!
Ну, тогда все просто:
Код: plaintext
1.
2.
3.
4.
5.
6.
Select a.id_type as ID,b.name, count(*) as cnt ;
from objects a, type b;
where a.id_type=b.id and !empty(a.id_type);
group by a.id_type ;
having cnt> 1 ;
into cursor query
...
Рейтинг: 0 / 0
11.09.2006, 16:12
    #33978543
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать интересный запрос
Станислав С deadok Aleksey-KЗапрос понятен, но есть к вам вопрос:
Если тип объекта – необязательное поле, то что какой смысл в количество_объектов>1 ?
Я понял, что количество_объектов = кол-во объектов заданного типа?
Или все объекты без типа отнести в один тип "БЕЗ ТИПА"?
С уважением, Алексей

Результатом запрос должна быть таблица вида:
"тип объекта количество объектов этого типа"
Объекты не имеющие тип в количество не включаются!!!!
Ну, тогда все просто:
Код: plaintext
1.
2.
3.
4.
5.
6.
Select a.id_type as ID,b.name, count(*) as cnt ;
from objects a, type b;
where a.id_type=b.id and !empty(a.id_type);
group by a.id_type ;
having cnt> 1 ;
into cursor query

Не думаю, что это правильный вариант: (having cnt>1)
Для VFP 9.0 можно корреляционный запрос:
Код: plaintext
1.
2.
SELECT ID, name, NVL((SELECT COUNT(*) FROM objects WHERE objects.ID_type = type.ID),  0 )
FROM type INTO CURSOR Result NOFILTER ;
ORDER BY name
С уважением, Алексей
P.S. Можно и через INNER JOIN + GROUP BY + HAVING, но через корреляционный запрос более наглядно.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите написать интересный запрос / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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