Страница: 1 |
|
Вопрос: Совсем запутался, помогите отобрать данные
|
Добавлено: 03.11.04 09:56
|
|
Автор вопроса: Hunter2003 | ICQ: 287314254
|
…
Dim recSet As String
Dim varKey As String ' ключ
Dim varName As String ' наименование
Dim varSch As Boolean ' признак
Dim dateVvod As Date ' дата ввода изменений
recSet = “SELECT key, name, date, sch FROM table ORDER BY key”
‘ где key – ключ (String)
‘ name – название (String)
‘ date – дата ввода изменений (Date)
‘ sch – признак (Boolean)
Adodc1.ConnectionString = "Provider=VFPOLEDB.1;Data Source=" & _
frmMain.dbPath & ";Mode=ReadWrite;Password="""";Collating Sequence" _
& "=MACHINE"
Adodc1.RecordSource = recSet
Adodc1.CommandType = adCmdText
Adodc1.Refresh
…
Нужно в существующем наборе найти записи по каждому key, где date имеет наибольшее значение и sch = True, если по данному key, с максимальным значением date sch = False, то такую запись пропускаем. Всё это сделать нужно в цикле, в котором при выполнении условия присваиваем значения переменным varKey, VarName, dateVvod, varSch.
Ответить
|
Номер ответа: 4 Автор ответа: Hunter2003
ICQ: 287314254
Вопросов: 14 Ответов: 72
|
Профиль | | #4
|
Добавлено: 10.11.04 11:18
|
Выпорка должна происходить следующим образом:
По key=1
Смотрим в таблицу и видим что две последние записи имеют sch=True, значит из них выбираем ту, которая с минимальным значением date.
По key=2
Тут всё просто, выбираем последнюю, т.к. sch=True и date имеет максимальное значение.
По key=3
Находим запись с нинимальным значение date и sch=True, и если есть запись с большим значением date и sch=False, то эта запись никуда не должна отбираться.
P.S. таблица table представляет собой архив изменений (абонентов, пользователей и т.п.), где полем date определяются последние и действующие изменения по которым будут производиться какие-либо действия. Поле sch отределяет наличие кокого нибудь прибора. Цель задачи сводиться к нахождению абонентов, пользователей и т.п. у которых установлен данный прибор. Но эти пользователи или абоненты могум произвольно как устанавливать прибор, так и снимать его на техническое обслуживание.
Ответить
|
Страница: 1 |
Поиск по форуму