Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.09.2009, 07:47   #1
Alex_2007_bur
Пользователь
 
Регистрация: 10.08.2009
Сообщений: 11
По умолчанию выборка из базы

Други!
Помогите сделать запрос............
Есть таблица Access - поле Данные и поле дата
Записи следующего типа если в поле данные есть значения, то в поле Дата - текущая дата.
Как выбрать по текущей дате, а если нет такой записи то по пустому полю в Данных при неизвестной дате.
Т.е нужно выбрать на редактирование по текущей дате, а если данные на текушую дату не вводились то на предыдущую...
Заранее благодарю!
Alex_2007_bur вне форума Ответить с цитированием
Старый 04.09.2009, 07:54   #2
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

чёт 3 раза прочитал не понял... может утро

если по дате отбор то

Код:
select * from table where ИмяПоляДаты='01.01.1000'
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 04.09.2009, 08:09   #3
Consol
Пользователь
 
Регистрация: 19.08.2009
Сообщений: 89
По умолчанию

напиши лучше пару строк примера, как и что должно быть
Consol вне форума Ответить с цитированием
Старый 04.09.2009, 08:18   #4
Alex_2007_bur
Пользователь
 
Регистрация: 10.08.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от BARNEY Посмотреть сообщение
чёт 3 раза прочитал не понял... может утро

если по дате отбор то

Код:
select * from table where ИмяПоляДаты='01.01.1000'
Весь фокус в том, что не только по дате но и по Данным
Таблица......
Данные1, Данные2,Дата
1, 2, 04.09.2009
1, Пусто, 01.09.2009
2, 2, 04.09.2009
2, Пусто, 01.09.2009
3, Пусто, 01.09.2009

Если сегодня делаю запрос должно получиться.......
1, 2, 04.09.2009
2, 2, 04.09.2009
3, Пусто, 01.09.2009

Если завтра делать запрос должно получиться.....

1, Пусто, 01.09.2009
2, Пусто, 01.09.2009
3, Пусто, 01.09.2009

Последний раз редактировалось Alex_2007_bur; 04.09.2009 в 08:21. Причина: форматирование
Alex_2007_bur вне форума Ответить с цитированием
Старый 04.09.2009, 08:25   #5
Consol
Пользователь
 
Регистрация: 19.08.2009
Сообщений: 89
По умолчанию

Код:
select *
 from table 
where ((данные1<>'')and(данные2<>'')and(дата=dat))or((данные1='')or(данные2='')and(дата<>dat));
где dat-параметр даты то есть ему присваивается сегодняшняя дата
Consol вне форума Ответить с цитированием
Старый 04.09.2009, 08:53   #6
Alex_2007_bur
Пользователь
 
Регистрация: 10.08.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Consol Посмотреть сообщение
Код:
select *
 from table 
where ((данные1<>'')and(данные2<>'')and(дата=dat))or((данные1='')or(данные2='')and(дата<>dat));
где dat-параметр даты то есть ему присваивается сегодняшняя дата
Спасибо, попробую!
Alex_2007_bur вне форума Ответить с цитированием
Старый 04.09.2009, 10:48   #7
Alex_2007_bur
Пользователь
 
Регистрация: 10.08.2009
Сообщений: 11
По умолчанию

Блин, не работает!
Уточню проблему..........
Таблица
ID_K,ID_U,Dat1,Дата
1, 1,7,04.09.2009
1, 1,Пусто,01.01.2000
2, 1,6,04.09.2009
2, 1,Пусто,01.01.2000
3, 1,5,04.09.2009
3,1, Пусто,01.01.2000
если делаю запрос
WHERE (((ID_K)=1)AND((ID_U)=2)AND((Da t1')<>4)AND((Дата)=3))
Parameters.ParamByName('d1').Value: =ID_K;
Parameters.ParamByName('d2').Value: =ID_U;
Parameters.ParamByName('d3').Value: =Datetostr(Date);
Parameters.ParamByName('d4').Value: = '';
То получаю на сегодня......

1, 1, 7, 04.09.2009
2, 1, 6, 04.09.2009
3, 1, 5, 04.09.2009

Последний раз редактировалось Alex_2007_bur; 04.09.2009 в 10:52. Причина: добавка
Alex_2007_bur вне форума Ответить с цитированием
Старый 04.09.2009, 10:54   #8
Alex_2007_bur
Пользователь
 
Регистрация: 10.08.2009
Сообщений: 11
По умолчанию

если делаю запрос
where (((ID_K)=1)AND((ID_U)=2)AND((Da t1)=4)AND((Дата)=5))
Parameters.ParamByName('d5').Value: = StrToDate('01.01.2000');
Ни чего нет
Alex_2007_bur вне форума Ответить с цитированием
Старый 04.09.2009, 10:54   #9
Alex_2007_bur
Пользователь
 
Регистрация: 10.08.2009
Сообщений: 11
По умолчанию

если делаю запрос
where (((ID_K)=1)AND((ID_U)=2)AND((Да та)=5))
Parameters.ParamByName('d5').Value: = StrToDate('01.01.2000');
Получаю пустые
1, 1, Пусто, 01.01.2000
2, 1, Пусто, 01.01.2000
3, 1, Пусто, 01.01.2000
Alex_2007_bur вне форума Ответить с цитированием
Старый 04.09.2009, 10:56   #10
Alex_2007_bur
Пользователь
 
Регистрация: 10.08.2009
Сообщений: 11
По умолчанию

Если запросы объединяю.....
' WHERE (((ID_K)=:D1)AND((ID_U)=:D2)AND((Da t1')<>:D4)AND((Дата)=:D3))'+
' OR (((ID_K)=:D1)AND((ID_U)=:D2)AND((Да та)=:D5))'
получаю только на сегодня, как будто строка с OR совсем не срабатывает.

Как получить из такой таблицы
-- ID_K---ID_U---- Dat1-----Дата
1 1 7 04.09.2009
1 1 Пусто 01.01.2000
2 1 Пусто 01.01.2000
3 1 5 04.09.2009
3 1 Пусто 01.01.2000

Вот такой результат на сегодня
1 1 7 04.09.2009
2 1 Пусто 01.01.2000
3 1 5 04.09.2009
Поле Dat1,Дата строковые
При добавлении пустой записи
Dat1 ни чего не присваивается
Дата = '01.01.2000'
Alex_2007_bur вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка из БД ИВАНьКа Общие вопросы C/C++ 4 21.08.2009 10:02
Открытие Базы, Перенос базы ke6ko БД в Delphi 1 10.07.2009 08:05
выборка из БД xvipx Microsoft Office Excel 13 30.01.2009 12:43
выборка Ser_gl Microsoft Office Excel 1 24.08.2007 20:49
Выборка John_chek БД в Delphi 10 27.06.2007 08:43