|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Заполнение таблицы
Здравсте я заполняю таблицу данными из бд через запрос
Код:
Query7.SQL.Clear; Query7.SQL.Text:='select nisl,dv from N_ISL inner join Issp on n_isl.isl=issp.isl where uid='+ MTable1.FieldByName('uid').AsString+' and pri=5'+'and isl=1008'+'order by dv'; Query7.Open; Table7.Edit; Table7.Append; Table7.FieldByName('Naim').AsString:=Query7.FieldByName('nisl').AsString; if Query7.FieldByName('dv').AsDateTime<>0 then Table7.FieldByName('Date1').AsDateTime:=Query7.FieldByName('dv').AsDateTime; Query7.Next; if Query7.FieldByName('dv').AsDateTime<>0 then Table7.FieldByName('Date2').AsDateTime:=Query7.FieldByName('dv').AsDateTime; Query7.Next; if Query7.FieldByName('dv').AsDateTime<>0 then Table7.FieldByName('Date3').AsDateTime:=Query7.FieldByName('dv').AsDateTime; Query7.Next; if Query7.FieldByName('dv').AsDateTime<>0 then Table7.FieldByName('Date4').AsDateTime:=Query7.FieldByName('dv').AsDateTime; Query7.Next; Table7.Post; Таблица посещений. Когда выполняется программа по человеку у которого было всего 2 посещения таблица заполняется как на рисунке. В первые два поля заполняются два посещения этого человека а два последних поля заполняются датами 2 посещения. Как сделать так что если всего два посещения то остальные два поля были пустыми? |
#2
|
||||
|
||||
А не проще ли одним запросом это сделать? И не придется забор городить.
З.Ы. Про нормализацию БД слышали? — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
|||
|
|||
я не знаю как по другому сделать
|
#4
|
||||
|
||||
Подселектами. База какая?
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#5
|
|||
|
|||
база firebird
|
#6
|
||||
|
||||
Если структура таблиц ваша и есть еще возможность вносить изменения, я бы вам настоятельно советовал отказаться от горизонтального расположения дат посещения. Если у вас будет посещений не 4, а 400? Вы как собираетесь это фиксировать? А такая посещаемость вполне возможна за несколько лет. Заведите отдельную табличку - скажем Талон(Пациент, ДатаПосещения, Врач) и тогда сколько угодно посещений врача пациентом у вас будет.
И еще совет. Называйте имена полей, таблиц удобочитаемыми именами. Ваши сокращения dv,nisl,issp через пол года вам и самому то непонятны станут. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 10.07.2013 в 13:31. |