![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сравнение данных [D7, IB6.x]
Dagir © (2008-09-04 13:18:00)Добрый день! Очень нужна ваша HELP!!!
В БД имеется таблица
Документы Версия Дата печатиЗадача такая: для каждого Doc_i проверить, если последняя ненулевая Дата печати соответствует последней Версии документа(в нашем случае это Doc2), то выполнять процедуру1, иначе Процедуру2.
Doc1 В1 null
Doc1 В2 15.08.08
Doc1 В3 null
Doc2 В1 null
Doc2 В3 17.08.08
Doc3 В1 null
Doc3 В2 null
Doc3 В3 null
.........................................
Docn В1 null
Я делаю так
Вывожу в ListView результат запроса
select Документы, max(Версия) from Table group by Документы
...
Versiya:=FieldByName('max(Версия)').AsString
Затем делаю проверку в цикле так:
for i:=0 to ListView.Items.Count-1 do
begin
...
select Документы,max(Версия),max(Дата печати) where Дата печати is not null and Документы:=ListView.Items[i]
...
if max(Версия)=Versiya then Процедура1 else Процедура 2
end;
Но это вызывает множество проблем, не подскажите другой способ проверить.
White
Сергей М. (2008-09-05 09:15:00) [1]SELECT MAX(Версия) AS Ver, MAX(Дата печати) AS PrintDate
FROM Таблица
GROUP BY Документы
HAVING Документы = Интересующий документ AND NOT Дата печати IS NULL
Dagir (2008-09-05 08:22:00) [2]Берем Doc1. Его последняя дата печати, не равная нулю-15.08.08,соответствует Версии2. Но последняя версия у этого документа-Это Версия3. Они не совпадают, поэтому переходим к процедуре2.
И так далее для каждого Doc_i.
Johnmen (2008-09-04 13:37:00) [3]http://www.delphimaster.ru/cgi-bin/forum.pl?id=1220248448&n=1
Правильный$Вася (2008-09-04 13:20:00) [4]ничего не понял