Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.04.26;
Скачать: CL | DM;

Вниз

Задать цикл   Найти похожие ветки 

 
Dagir ©   (2008-09-01 09:54) [0]

Из базы данных выбираем данные: из Table1 поле Docum, из Table2 - поле Date, Table3 - поле Versiya.
Получается следующая таблица:
[B] Docum[/B]  [B] Date[/B]    [B]Versiya [/B]
Doc_1    31/01/08  1
Doc_1    01/02/08  2
Doc_1                  3
Doc_2    06/01/08  1
Doc_2                  2
Doc_3    12/05/08  1
Задача следующая: для каждого из Doc1,Doc2,...выбираем строку с последней версией(для Doc1-Versiya3,для Doc2-Versiya2,для Doc3-Versiya1) и проверяем не пусто ли поле Date в этой строке, если пусто, то переходим к предыдущей версии и так пока не найдем заполненое поле.
Проблема уже начинается с того, что не знаю как осуществить выборку элементов Doc_i


 
Johnmen ©   (2008-09-01 10:18) [1]


> Из базы данных выбираем данные

Каким образом?


 
Dagir ©   (2008-09-01 10:29) [2]

select Docum,Date,Versiya from Table1 left join Table2 on Table2.doc_id = Table1.doc_id  left join Table3 on Table3.ver_id = Table2.ver_id


 
Медвежонок Пятачок ©   (2008-09-01 10:30) [3]

while not DataSet.Eof do
begin
 ...
end;


 
Dagir ©   (2008-09-01 10:45) [4]

Я знаю как задавать цикл, я не знаю как как осуществить выборку элементов Doc_i
в столбце Docum, если эти элементы повторяются


 
Медвежонок Пятачок ©   (2008-09-01 10:48) [5]

Я знаю как задавать цикл
Зачем тогда вопрос про цикл?

а выборку ты уже сделал селектом.


 
Johnmen ©   (2008-09-01 10:50) [6]

Если принять, что номера версий возрастают с возрастанием даты (для упрощения запроса), то:
SELECT Docum,MAX(SuperDate),MAX(Versiya)
FROM Table1
LEFT JOIN Table2 ON Table2.doc_id = Table1.doc_id  
LEFT JOIN Table3 ON Table3.ver_id = Table2.ver_id
WHERE SuperDate IS NOT NULL
GROUP BY Docum

PS
Зарезервированными словами не стОит называть свои объекты. В данном случае поля.


 
Sergey13 ©   (2008-09-01 11:41) [7]

> [0] Dagir ©   (01.09.08 09:54)
> из Table1 поле Docum, из Table2 - поле Date, Table3 - поле Versiya.
А к чему относится дата? Если к документу или версии, ИМХО странно держать ее в отдельной таблице.


 
evvcom ©   (2008-09-01 15:44) [8]


> [6]

И LEFT JOIN логичнее заменить на INNER JOIN



Страницы: 1 вся ветка

Текущий архив: 2009.04.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
4-1208772445
Alex
2008-04-21 14:07
2009.04.26
D5,D7 при установке на VMWARE - не работает debuger


2-1237279331
b@v
2009-03-17 11:42
2009.04.26
TPopupMenu


2-1236878924
игяи
2009-03-12 20:28
2009.04.26
TShiftState : какие возможные значения?


2-1236603340
игяи
2009-03-09 15:55
2009.04.26
Delphi 7 в Vista не поддержывает украинский


3-1220124276
avram
2008-08-30 23:24
2009.04.26
Организавать в трехзвенке ещё один сервер