![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Народ помогите! дайте пример выборки из диапазона дат по полям period1 and period2
SELECT base_doc.id_base, spr_doc.spr_doc, base_doc.data, spr_user.spr_user, base_doc.period1, base_doc.period2, base_doc.rezul, base_doc.data_akt, base_doc.naim_subj, base_doc.id_doc, base_doc.id_user FROM base_doc LEFT OUTER JOIN spr_doc ON base_doc.id_doc = spr_doc.id_SprDoc LEFT OUTER JOIN spr_user ON base_doc.id_user = spr_user.id_user заранее очень благодарен. |
|
#2
|
||||
|
||||
|
Примерно так:
Код:
SELECT base_doc.id_base, spr_doc.spr_doc, base_doc.data, spr_user.spr_user, base_doc.period1, base_doc.period2, base_doc.rezul, base_doc.data_akt, base_doc.naim_subj, base_doc.id_doc, base_doc.id_user FROM base_doc LEFT OUTER JOIN spr_doc ON base_doc.id_doc = spr_doc.id_SprDoc LEFT OUTER JOIN spr_user ON base_doc.id_user = spr_user.id_user WHERE :UserDate between base_doc.period1 AND base_doc.period2 |
|
#3
|
|||
|
|||
|
а можно как то по подробнее? желательно код, я просто не силен в Delphi а исходник достался от прошлого программиста.
|
|
#4
|
|||
|
|||
|
причем тут Delphi, это SQL запрос.
Страдалецъ написал запрос. ключевое: Код:
WHERE :UserDate between base_doc.period1 AND base_doc.period2 where-Ограничивает возвращаемые значения. between- указывает значения в диапазоне от и до.(включительно) ПС. если надо указать диапазон и чтоб поля period1 и period2 входили в него то можно так: Код:
WHERE (base_doc.period1 between :UserDate1 AND :UserDate2) and (base_doc.period2 between :UserDate1 AND :UserDate2) |
|
#5
|
|||
|
|||
|
а UserDate1 что значит поля на форме?
|
|
#6
|
|||
|
|||
|
Цитата:
|
|
#7
|
|||
|
|||
|
Прости не понимаю, ты можешь на примере моего запроса написать правильно?
|
|
#8
|
|||
|
|||
|
Например на форме имеем:
ADOQuery1 2 DateTimeEdit (календарь короче не помню как оно называется)1 кнопку. в свойство SQL компонента ADOQuery1 пишем запрос: Код:
SELECT base_doc.id_base, spr_doc.spr_doc, base_doc.data, spr_user.spr_user, base_doc.period1, base_doc.period2, base_doc.rezul, base_doc.data_akt, base_doc.naim_subj, base_doc.id_doc, base_doc.id_user FROM base_doc LEFT OUTER JOIN spr_doc ON base_doc.id_doc = spr_doc.id_SprDoc LEFT OUTER JOIN spr_user ON base_doc.id_user = spr_user.id_user WHERE (base_doc.period1 between :UserDate1 AND :UserDate2) and (base_doc.period2 between :UserDate1 AND :UserDate2) жмем 2 раза на кнопку. в обработчике пишем: Код:
ADOQuery1.Active := false;
ADOquery1.parameters.parambyname('UserDate1').Value:=DatetimeEdit1.date;
ADOquery1.parameters.parambyname('UserDate2').Value:=DatetimeEdit2.date;
ADOQuery1.Active:=true; |
|
#9
|
|||
|
|||
|
Огромное спасибо! сегодня вечером попробую.
|