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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.07.2013, 10:43   #1
King_Of_Arthur
Пользователь
 
Регистрация: 17.05.2013
Сообщений: 43
По умолчанию запись значений одного поля в несколько полей

Есть таблица посещения:
Наименование Дата1 Дата2 Дата3 Дата4
Нужно заполнить ее данными из БД например если за год было 4 посещения то все поля даты заполнены, а если например за год было только 2 посешения то должны быть заполнены Дата1 Дата2 а остальлные поля пустые, если более 4 то только первые 4.
Я так сделала запрос
Код:
  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;
  while not Query7.Eof do begin
    if Query7.FieldByName('dv').AsDateTime<>0 then begin
      Table7.Edit;
      Table7.Append;
      Table7.FieldByName('Naim').AsString:=Query7.FieldByName('nisl').AsString;
      Table7.FieldByName('Date1').AsDateTime:=Query7.FieldByName('dv').AsDateTime;
   Table7.FieldByName('Date2').AsDateTime:=Query7.FieldByName('dv').AsDateTime;
      Table7.FieldByName('Date3').AsDateTime:=Query7.FieldByName('dv').AsDateTime;
      Table7.FieldByName('Date4').AsDateTime:=Query7.FieldByName('dv').AsDateTime;
      Table7.Post;
    end;
    Query7.Next;
  end;
но он заполняет все 4 стоки одной датой.
King_Of_Arthur вне форума Ответить с цитированием
Старый 08.07.2013, 11:08   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

вполне логично, для всех 4х дат стоит один и тот же
Код:
:= Query7.FieldByName('dv').AsDateTime;
Цитата:
Есть таблица посещения:
Наименование Дата1 Дата2 Дата3 Дата4
а можно еще увидеть таблицу откуда берутся данные?
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 08.07.2013, 11:30   #3
King_Of_Arthur
Пользователь
 
Регистрация: 17.05.2013
Сообщений: 43
По умолчанию

Данные берутся из бд

ну вот тут только два посещения мне нужно их записать в таблицу
Изображения
Тип файла: jpg Безымянный.JPG (3.9 Кб, 67 просмотров)

Последний раз редактировалось Stilet; 08.07.2013 в 18:16.
King_Of_Arthur вне форума Ответить с цитированием
Старый 08.07.2013, 11:56   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

0. Очередная запись из Query7
1. Ищем запись в Table7 по ключевому полю
2. Запись не найдена - добавляем
3. поле Date1=NULL - пишем в Date1 и на 0
4. поле Date2=NULL - пишем в Date2 и на 0
5. поле Date3=NULL - пишем в Date3 и на 0
6. поле Date4=NULL - пишем в Date4 и на 0
7. ни куда не пишем и на 0
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.07.2013, 12:24   #5
King_Of_Arthur
Пользователь
 
Регистрация: 17.05.2013
Сообщений: 43
По умолчанию

эх попроше бы для тупых
King_Of_Arthur вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод значений полей таблицы в текстовые поля Умагаджи SQL, базы данных 2 27.08.2012 22:58
Поля со списками, суммирование значений из полей, диаграмма depp.88 Microsoft Office Access 11 22.10.2011 12:11
Выбор полей одного типа Rekky SQL, базы данных 6 03.02.2010 12:23
Несколько полей в DBLookUpComboBox hike38 БД в Delphi 9 21.12.2009 18:01
Выявление одинаковости значений поля в одной талице по значению поля в другой nikmay SQL, базы данных 4 13.08.2009 12:51