Главная страница
    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
15-1227847536
Slider007
2008-11-28 07:45
2009.01.25
С днем рождения ! 28 ноября 2008 пятница


3-1213708099
mv
2008-06-17 17:08
2009.01.25
FIB


2-1228916838
Alex_C
2008-12-10 16:47
2009.01.25
Зная Handle окна перейти к его TWinControl


15-1228434511
Дмитрий С
2008-12-05 02:48
2009.01.25
Как получить все содержиме IStream


15-1227628921
Kerk
2008-11-25 19:02
2009.01.25
4:3 , 16:9 и другие





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский