Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2009.01.25;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
1-1207216284
TamRAzZ
2008-04-03 13:51
2009.01.25
TMemo без фона


15-1227987724
isasa
2008-11-29 22:42
2009.01.25
Свободные (шаровые) DNS сервера.


2-1229358627
Laner6666
2008-12-15 19:30
2009.01.25
Поля MS Word


2-1229332381
9899100
2008-12-15 12:13
2009.01.25
Наследник от TGraphicControl


2-1228903397
Iriss
2008-12-10 13:03
2009.01.25
GDI+ для Windows 98





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский