powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / помогите плз с запросом...
10 сообщений из 10, страница 1 из 1
помогите плз с запросом...
    #32161009
pvnic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет! у меня есть 2 хранимых процедуры
1)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Select first  5  skip  5 
  * 
from 
  CLIENT_GET(:User_Id, :ShowCompany, :ShowPerson)
where 
  STATUS =  1 
order by 
  NAME


2)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Select 
  * 
from 
  CONTACT_GET(:User_Id, :ShowCompany)
where 
  STATUS =  1 
order by 
  COMPANYNAME


1-я возвращает компании, 2-я контакты. Пересекаются по полям CLIENT_GET.id & CONTACT_GET.customerID

не могу придумать эффективного запроса, чтобы выбирались контакты, которые относятся к клиентам с 1-й выборки...

вложенный типа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Select 
  * 
from 
  CONTACT_GET(:User_Id, :ShowCompany)
where 
  STATUS =  1  AND (customerID in (Select first  5  skip  5 
  id 
from 
  CLIENT_GET(:User_Id, :ShowCompany, :ShowPerson)
where 
  STATUS =  1 
))
order by 
  COMPANYNAME

вешает все на фиг при 1000 записях клиентов и 2000 контактах...
...
Рейтинг: 0 / 0
помогите плз с запросом...
    #32161038
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что говорит? Или вешается молча? Какой сервер?
...
Рейтинг: 0 / 0
помогите плз с запросом...
    #32161047
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй поменять на
Код: plaintext
1.
2.
3.
4.
Select * from CONTACT_GET(:User_Id, :ShowCompany) co
where STATUS =  1  AND EXISTS(
  Select first  5  skip  5  * from CLIENT_GET(:User_Id, :ShowCompany, :ShowPerson) cl
  where STATUS =  1  and cl.id=co.customerID))
order by COMPANYNAME
...
Рейтинг: 0 / 0
помогите плз с запросом...
    #32161049
pvnic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
firebird
версия точно не скажу, но походу 1-я...
как виснет - ну проц жрет... долго.
...
Рейтинг: 0 / 0
помогите плз с запросом...
    #32161068
pvnic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не, не помогает :(

собстна я из-за чего начал разбираться - на дельфях написал так:
сначала беруться все id из CLIENT_GET, сохраняются в строчку через запятую, потом подсовывается в условие к CONTACT_GET....
работает 7-10 секунд - показалось долго, но варианта лучше пока нету....
...
Рейтинг: 0 / 0
помогите плз с запросом...
    #32161075
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может бага какая-то, а может процедура кривая. Пиши на news:\\forums.deemo.ru\epsylon.public.interbase
Если это бага - товарищ Еманов заинтересуется и пофиксит, если не пофиксил ещё.

Да и вобще - мало информации. Текст и описание процедур не помешал бы.
...
Рейтинг: 0 / 0
помогите плз с запросом...
    #32161084
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эх, ошибся: news://forums.demo.ru/epsylon.public.interbase
...
Рейтинг: 0 / 0
помогите плз с запросом...
    #32165817
pvnic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а если join'ами это переписать то не поможет?

Если не трудно, примерный вариант напишите плз...
...
Рейтинг: 0 / 0
помогите плз с запросом...
    #32165958
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Врбше-то джойнить процедуры не хорошо, т.к. есть определённые проблемы с этим. Но если уж джойнить, то только через left join. Запрос какой-нибудь такой будет:

Select * from CONTACT_GET(:User_Id, :ShowCompany) co
left join CLIENT_GET(:User_Id, :ShowCompany, :ShowPerson) cl on cl.status=1
where co.STATUS = 1 and and cl.id=co.customerID
order by co.COMPANYNAME

А вобще-то что-то ты там перемудрил. Напиши, в конце концов, ещё одну процедуру специально для этого.
...
Рейтинг: 0 / 0
помогите плз с запросом...
    #32166023
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё на конфу сходи - там тебе тоже что-то ответили
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / помогите плз с запросом...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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