Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Почему не работает EXISTS? / 25 сообщений из 25, страница 1 из 1
24.05.2004, 08:21
    #32529908
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
собственно сабж.
пробовал искать . сравнивал всё вроде правильно. пробовал для разных полей (цифровых) , чё-то не работает.
not exists работает...
...
Рейтинг: 0 / 0
24.05.2004, 08:35
    #32529919
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
корочку хлеба
кусочек кода
...
Рейтинг: 0 / 0
24.05.2004, 08:39
    #32529921
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT движение.[порядковый номер], движение.код AS код_, движение.резидент
FROM движение
WHERE (((движение.код)=Exists (SELECT движение.код
FROM движение
WHERE (((движение.код)= 18679 ));
)))
ORDER BY движение.[порядковый номер]
WITH OWNERACCESS OPTION;

если заменить exists на in отработает нормально.
это тестовый код, при рабочем при in работает слишком долго.
exists хочу применить для ускорения работы.
...
Рейтинг: 0 / 0
24.05.2004, 08:41
    #32529923
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
ЗЫ
ХР/ХР sp1/sp1-sp3, sp_jet8
...
Рейтинг: 0 / 0
24.05.2004, 09:05
    #32529938
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
Что такое Where Поле= Exists???
...
Рейтинг: 0 / 0
24.05.2004, 09:27
    #32529960
Alexander G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
WHERE Exists (SELECT движение...
вернет лишь есть ли записи в подчиненном или нет
а если есть хоть одна
выведет весь
SELECT движение.[порядковый номер], движение.код AS код_, движение.резидент
FROM движение
...
Рейтинг: 0 / 0
24.05.2004, 10:21
    #32530088
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
2ЛП
Что такое Where Поле=Exists???

это из конструктора запросов из режима SQL, ежели я в режиме конструктора в поле услосия отбора в столбце код пишу еxists (sel....)

2Alexander G
такой вариант мне не подходит.

задача :
есть запрос возвращающий в столбце значения, нада отобрать из другой талицы записи с соответствующие запросу.
in работает , но очень медленно.
...
Рейтинг: 0 / 0
24.05.2004, 10:24
    #32530094
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
авторin работает , но очень медленно.
И что?
Если, что-то работает медленно, из этого не следует, что не правильно!
...
Рейтинг: 0 / 0
24.05.2004, 10:25
    #32530098
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
Ну и с индексами стоит поэкпериментировать :)
...
Рейтинг: 0 / 0
24.05.2004, 10:27
    #32530105
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
Подумаешь - медленно работает
То что ты написал - вообще работать не может. В принципе. Жизнь такая. Синтаксис SQL такой.

Неважно, насколько быстро работает ваша программа, если она работает неправильно. (с) не моё
Неважно, насколько быстро работает ваш запрос, если он не работает совсем. (с) моё

Вынеси вот это:
Код: plaintext
1.
2.
SELECT движение.код
FROM движение
WHERE (((движение.код)= 18679 )
в подзапрос, и делай с ним JOIN
...
Рейтинг: 0 / 0
24.05.2004, 10:36
    #32530134
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
in работает и работал, проблема ускорить работу
не работает exists
как раз это индексное поле


в под запрос выносил - работает, только запрос не обновляемый получается.
...
Рейтинг: 0 / 0
24.05.2004, 10:38
    #32530136
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
авторне работает exists
он то как раз работает, только вы его используете не правильно :)
...
Рейтинг: 0 / 0
24.05.2004, 10:45
    #32530160
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
так в чём неправильно
...
Рейтинг: 0 / 0
24.05.2004, 10:48
    #32530169
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
Ну почитай ты хелп к синтакису SQL
Не бывает Where Поле = Exists (что-то)
Бывает или Where Поле = что-то, или Where Поле In (что-то), или Where Exists (что-то)
...
Рейтинг: 0 / 0
24.05.2004, 10:50
    #32530173
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
Хотя... если Exists возвращает True/False, то и Where Поле=Exists (что-то) можно использовать для логических полей
...
Рейтинг: 0 / 0
24.05.2004, 10:53
    #32530186
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
2 ЛП


Незнаю как в Аксе, но в MSSQL такой фокус не пройдет :)
Ну нет там полей логического типа :)
...
Рейтинг: 0 / 0
24.05.2004, 10:58
    #32530196
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
понял...
при in сравниваются
а при exists ....

но как сделать , чтоб быстро и редактируемы результат?
...
Рейтинг: 0 / 0
24.05.2004, 11:03
    #32530208
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
авторно как сделать , чтоб быстро и редактируемы результат?
А кто вам сказал, что EXISTS будет быстрее?

И пример у вас плохой :( Может реальный запрос посмотрим?

А то для вашего случая, я бы предложил:
Вместо
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT движение.[порядковый номер], движение.код AS код_, движение.резидент
FROM движение
WHERE (((движение.код)=Exists (SELECT движение.код
FROM движение
WHERE (((движение.код)= 18679 ));
)))
ORDER BY движение.[порядковый номер]
WITH OWNERACCESS OPTION;
Написать:
Код: plaintext
1.
2.
3.
4.
SELECT движение.[порядковый номер], движение.код AS код_, движение.резидент
FROM движение
WHERE (((движение.код)= 18679 ))
ORDER BY движение.[порядковый номер]
WITH OWNERACCESS OPTION;
...
Рейтинг: 0 / 0
24.05.2004, 11:11
    #32530225
(c)VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
Может я чего то не понимаю ,но почему просто не написать:
Код: plaintext
1.
2.
3.
4.
SELECT движение.[порядковый номер], движение.код AS код_, движение.резидент
FROM движение
WHERE движение.код= 18679 
ORDER BY движение.[порядковый номер]
WITH OWNERACCESS OPTION;
...
Рейтинг: 0 / 0
24.05.2004, 11:11
    #32530226
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
вот что исть , долго играет....

Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT движение.[порядковый номер], движение.код AS код_, движение.[сумма минус]
FROM движение
WHERE (((движение.код) In (SELECT s11.код
FROM s11)))
ORDER BY движение.[порядковый номер]
WITH OWNERACCESS OPTION;

где s11:
Код: plaintext
1.
2.
3.
4.
5.
SELECT движение.код FROM партия INNER JOIN движение ON партия.номер = движение.покупка WHERE (((партия.имя) =  3626 )) GROUP BY 
движение.код UNION SELECT движение.код FROM покупатель_покупки INNER 
JOIN движение ON (покупатель_покупки.код = движение.продажа) AND 
(покупатель_покупки.код = движение.продажа) WHERE 
(((покупатель_покупки.покупатель) ='ООО "Компания "'));

как ускорить?
...
Рейтинг: 0 / 0
24.05.2004, 11:11
    #32530228
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
есть запрос возвращающий в столбце значения, нада отобрать из другой талицы записи с соответствующие запросу.
но как сделать , чтоб быстро и редактируемы результат?
INNER JOIN
...
Рейтинг: 0 / 0
24.05.2004, 11:13
    #32530237
(c)VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
Апаздал (c) ЛП
...
Рейтинг: 0 / 0
24.05.2004, 11:14
    #32530238
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
Код: plaintext
1.
2.
3.
4.
SELECT движение.[порядковый номер], движение.код AS код_, движение.[сумма минус]
FROM движение INNER JOIN s11 ON движение.код = s11.код
ORDER BY движение.[порядковый номер]
WITH OWNERACCESS OPTION;

не редактируется...
...
Рейтинг: 0 / 0
24.05.2004, 11:22
    #32530263
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
Когда Inner Join предлагал - твоего поста еще не видел.
Ясен пень что такое редактироваться не будет. Там же s11 сам по себе не редактируемый (как минимум из-за Union)
Тогда только через Where ... In ...
Или результаты s11 во временную таблицу сбрасывай.

З.Ы. Мораль - правильно задавайте вопросы СРАЗУ. Избежите неправильных советов.
...
Рейтинг: 0 / 0
24.05.2004, 11:26
    #32530275
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает EXISTS?
ну блин ... успокоил...

в неправильном вопросе толк оказался - доперло как работает exists...

а с таблицей вариант... не совсем красиво , но на без рыбье...
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Почему не работает EXISTS? / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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