Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.01.25;
Скачать: CL | DM;

Вниз

FIB   Найти похожие ветки 

 
mv   (2008-06-17 17:08) [0]

Добрый день!
Помогите реализовать задачу: Сделать в приложении возможность при выборе значений  oto_task_distrib_main.type_task in (300,400,500,600,700) отсеивать записи в TcxLookupComboBox по статусу APIO.status in (3,5,8), а при выборе oto_task_distrib_main.type_task = 800 -  APIO.status in (3,5,8,11,12 и т.д.).
Я так понимаю, что нужно делать два разных запроса.
Типа if FIBDataSet.FieldByName("TYPE_TASK").Value = "800"  then исполняем один запрос, при остальных значениях - второй.
В общем, как сделать мне понятно, но не пойму как переделать запрос, чтобы можно было выбрать TYPE_TASK из набора.

SELECT ID, AGENTPOINT_NAME, AGENT_LIMIT, CUSTID, STATUS_NAME
FROM AGENTPOINT_PLACE_IN_OTOEX(:BANK_PARTNER_ID_IN) APIO
WHERE NOT exists (SELECT * FROM oto_task_distrib
                            INNER join oto_task_distrib_main
                            ON oto_task_distrib.task_id = oto_task_distrib_main.id and  oto_task_distrib_main.type_task in (300,400,500,600,700,800)
                            WHERE oto_task_distrib.agentpoint_place_id = APIO.ID AND oto_task_distrib.status in (0,50))
                            and APIO.status in (3,5,8)

dsAgentPointName.Close;
 if bActive then
 begin
   dsAgentPointName.ParamByName("BANK_PARTNER_ID_IN").AsInteger := dsGetBankPartnerID.Fields.FieldByName("BANKPARTNER_ID").AsInteger;
  dsAgentPointName.SQLs.SelectSQL.Text;
  dsAgentPointName.Prepare;
   dsAgentPointName.Active := bActive;
 end;


 
Поросенок Винни-Пух ©   (2008-06-17 18:29) [1]

где
(тайп_таск ин (....) and статус такой-то)
или
(тайп_таск ин (....) and статус такой-то)


 
mv   (2008-06-18 10:35) [2]

это можно решить одним запросом? Сомневаюсь


 
Поросенок Винни-Пух ©   (2008-06-18 10:58) [3]

можно, если на человеческом языке сможешь сформулировать что же тебе надо


 
mv   (2008-06-18 12:21) [4]

Из датасет в комбобокс для заявок с типом 300,400,500,600,700,800 попадают пункты со статусом 3,5,8.

WHERE NOT exists (SELECT * FROM oto_task_distrib
                           INNER join oto_task_distrib_main
                           ON oto_task_distrib.task_id = oto_task_distrib_main.id and  oto_task_distrib_main.type_task in (300,400,500,600,700,800)
                           WHERE oto_task_distrib.agentpoint_place_id = APIO.ID AND oto_task_distrib.status in (0,50))
                           and APIO.status in (3,5,8)


Нужно, чтобы для заявок  300,400,500,600,700 попадали пункты со статусом 3,5,8 , а для заявок 800 - 3,5,8,12 и т.д.


 
Sergey13 ©   (2008-06-18 12:29) [5]

> [4] mv   (18.06.08 12:21)

Фильтровать датасет?


 
Поросенок Винни-Пух ©   (2008-06-18 12:35) [6]

Нужно, чтобы для заявок  300,400,500,600,700 попадали пункты со статусом 3,5,8 , а для заявок 800 - 3,5,8,12 и т.д.

where
(заявка in (300,400,500,600,700) and статус in (3,5,8))
or
(заявка = 800 and статус in (3,5,8,12))


 
Поросенок Винни-Пух ©   (2008-06-18 12:37) [7]

либо исходный запрос и селект из него если fb2.x


 
mv   (2008-06-18 12:39) [8]


> where
> (заявка in (300,400,500,600,700) and статус in (3,5,8))
> or
> (заявка = 800 and статус in (3,5,8,12))
>


так не выйдет статус за скобками фильтра


 
mv   (2008-06-18 12:40) [9]

а вообще конечно стоит попробывать


 
mv   (2008-06-18 12:42) [10]


> либо исходный запрос и селект из него если fb2.x


это и есть исходный запрос


 
Поросенок Винни-Пух ©   (2008-06-18 12:43) [11]

так не выйдет статус за скобками фильтра

Нужно, чтобы для заявок  300,400,500,600,700 попадали пункты со статусом 3,5,8 , а для заявок 800 - 3,5,8,12 и т.д.

я ж сказал, что по человечески надо выразить что же именно хочется поиметь.


 
mv   (2008-06-18 12:59) [12]

вы все правильно поняли, именно это и хочется поиметь:
where
(заявка in (300,400,500,600,700) and статус in (3,5,8))
or
(заявка = 800 and статус in (3,5,8,12)).

Но руки кривоваты, чтобы правильно в запрос впихнуть, да еще, чтобы это все работало.


 
mv   (2008-06-18 13:49) [13]

Не работает фильтр. помогите составить правильно, плиз.



Страницы: 1 вся ветка

Текущий архив: 2009.01.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
2-1228910713
rhammer
2008-12-10 15:05
2009.01.25
OnKeyDown при динамическом TPageControl


1-1207310024
TStas
2008-04-04 15:53
2009.01.25
Как добавить в ActionList Action?


15-1228308085
Карелин Артем
2008-12-03 15:41
2009.01.25
Справочник или база на миллион и более записей в открытом доступе


15-1228401946
utkin295
2008-12-04 17:45
2009.01.25
Создание интерпретатора


2-1229192028
ИванН
2008-12-13 21:13
2009.01.25
Bottom