![]() |
|
|
![]()
|
|
| MihailCarib |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 11.3.2008 Репутация: нет Всего: нет |
Здравствуйте уважаемые форумчане! Прошу не ругать новичка - вопрос простой, но что-то у меня запрос не получается. Ситуация такая: есть база данных 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 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 1 Всего: 58 |
Насколько мне известно, это единственный способ... |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
А в чём проблема-то? Нормальный запрос с условием. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| Vas |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
токи where один раз
Добавлено @ 20:16
А почему именно так, нафига два запроса делать? Одним с составным условием быстрее будет и проще. Это сообщение отредактировал(а) Vas - 19.8.2010, 20:17 -------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
||||||
|
|||||||
| MihailCarib |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 11.3.2008 Репутация: нет Всего: нет |
Мужики, ну я же не просто так от не... делать сижу тут и нервничаю. Я понимаю, что составной запрос проще и правильнее, но есть ТЗ, в котором написано именно так и никак иначе. И хоть расшибись. При чем все остальное уже готово, осталось вот только эту "фишку" сделать...
|
|||
|
||||
| Frees |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
дословно что в ТЗ написано?
Добавлено @ 22:09
глупое решение но и требование, извиняюсь, глупое Добавлено через 8 минут и 39 секунд еще такой вариант
Это сообщение отредактировал(а) Frees - 19.8.2010, 22:12 -------------------- Кольцов Виктор Владимирович |
||||||
|
|||||||
| cat512 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 438 Регистрация: 20.3.2007 Репутация: 1 Всего: 15 |
Добавлено через 7 минут и 41 секунду ещё можно использовать master-detail query. Может реч идёт о них. Утебя на клиенте будет два набора данных, один с фамилиями другой с датами, с каким хочеш с таким и работай. Или тебе надо всё в одном держать? |
|||
|
||||
| MihailCarib |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 11.3.2008 Репутация: нет Всего: нет |
Согласен, бред. Такое бывает, когда ТЗ пишут деятели, ни...чего не понимающие в программировании, да и в остальном тоже слабо. Вот деньги они считают круто, мне бы так. Нашел формальную лазейку в ТЗ, организовал составной запрос. Должны "проглотить", хоть и с боем. Спасибо всем.
|
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 8 Всего: 44 |
MihailCarib, можно еще локальными фильтрами воспользоваться.
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |