| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Запрос |
| Автор: MihailCarib 19.8.2010, 18:31 |
| Здравствуйте уважаемые форумчане! Прошу не ругать новичка - вопрос простой, но что-то у меня запрос не получается. Ситуация такая: есть база данных Date_mark, в ней есть поле "Дата", есть поле "Фамилия". Я знаю, как выбрать из всех полей таблицы человека с определенной фамилией: Form10.Query1.Close; Form10.Query1.SQL.Clear; Form10.Query1.SQL.Text:='SELECT * FROM Date_mark where Фамилия=:p'; Form10.Query1.ParamByName('p').Value:= Edit2.Text; Form10.Query1.OPEN; Знаю, как выбрать дату Form10.Query1.Close; Form10.Query1.SQL.Clear; Form10.Query1.SQL.Text:='SELECT * FROM Date_mark where( Дата between :p and :c)'; Form10.Query1.ParamByName('p').Value:=StrToDate(Edit1.Text); Form10.Query1.ParamByName('c').Value:=StrToDate(Edit3.Text); Form10.Query1.OPEN; Но если мне нужно выбрать дату из уже выбранной фамилии, а не из всего "Date_mark", или наоборот, из выбранной даты выбрать только эту фамилию? Не хочу все делать одновременно, например так: Form10.Query1.SQL.Text:='SELECT * FROM Date_mark (where( Дата between :p and :c)) and (where (Фамилия=:p))'; Надо именно выбрать сначала все события с фамилией, а потом из полученного набора выбрать дату (или наоборот). Примерчик если можно дайте, пожалуйста! |
| Автор: Keeper89 19.8.2010, 18:52 |
Насколько мне известно, это единственный способ... |
| Автор: Данкинг 19.8.2010, 18:53 |
А в чём проблема-то? Нормальный запрос с условием. |
| Автор: MihailCarib 19.8.2010, 21:54 |
| Мужики, ну я же не просто так от не... делать сижу тут и нервничаю. Я понимаю, что составной запрос проще и правильнее, но есть ТЗ, в котором написано именно так и никак иначе. И хоть расшибись. При чем все остальное уже готово, осталось вот только эту "фишку" сделать... |
| Автор: Frees 19.8.2010, 22:05 | ||||||
| дословно что в ТЗ написано? Добавлено @ 22:09
глупое решение но и требование, извиняюсь, глупое Добавлено через 8 минут и 39 секунд еще такой вариант
|
| Автор: cat512 22.8.2010, 00:25 |
Добавлено через 7 минут и 41 секунду ещё можно использовать master-detail query. Может реч идёт о них. Утебя на клиенте будет два набора данных, один с фамилиями другой с датами, с каким хочеш с таким и работай. Или тебе надо всё в одном держать? |
| Автор: MihailCarib 22.8.2010, 13:55 |
| Согласен, бред. Такое бывает, когда ТЗ пишут деятели, ни...чего не понимающие в программировании, да и в остальном тоже слабо. Вот деньги они считают круто, мне бы так. Нашел формальную лазейку в ТЗ, организовал составной запрос. Должны "проглотить", хоть и с боем. Спасибо всем. |
| Автор: Deniz 23.8.2010, 07:07 |
| MihailCarib, можно еще локальными фильтрами воспользоваться. |