Форум: "Начинающим";
Текущий архив: 2008.10.12;
Скачать: [xml.tar.bz2];
ВнизСравнение данных Найти похожие ветки
← →
Dagir © (2008-09-04 13:18) [0]Добрый день! Очень нужна ваша 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-04 13:20) [1]ничего не понял
← →
Johnmen © (2008-09-04 13:37) [2]http://delphimaster.net/view/3-1220248448/
← →
Dagir © (2008-09-05 08:22) [3]Берем Doc1. Его последняя дата печати, не равная нулю-15.08.08,соответствует Версии2. Но последняя версия у этого документа-Это Версия3. Они не совпадают, поэтому переходим к процедуре2.
И так далее для каждого Doc_i.
← →
Сергей М. © (2008-09-05 09:15) [4]SELECT MAX(Версия) AS Ver, MAX(Дата печати) AS PrintDate
FROM Таблица
GROUP BY Документы
HAVING Документы = Интересующий документ AND NOT Дата печати IS NULL
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.10.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.068 c