![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
актуальный срез в SQL для IB 6 [D6, IB6.x]
Bizon © (2004-04-07 12:33:00)В IB6 веду историю договоров. Структура таблицы: PK-Nдог-TimeStampизменения записи-... Хочу получить актуальный срез данных. Max(TimeStamp)...group by PK, Nдог не позволяет такого сделать. Подскажите пожста.
Bizon (2004-04-07 13:45:00) [1]Большое спасибо roottim
roottim (2004-04-07 13:14:00) [2]если t.DOGNUM, t.datetimechange не дают один и тотже t.PKcode то попробуй... (ничего не проверял..конечно :) )
select t.PKcode, t.DOGNUM, t.datetimechange from CONTRACTS t
where t.datetimechange =
(
select max(c.datetimechange) from CONTRACTS c
where c.dognum = t.dognum
)</
sniknik (2004-04-07 13:03:00) [3]> раз PK везде разный
то его нужно исключить из групировки и группировать только то что должно быть сгрупировано.
Bizon (2004-04-07 12:56:00) [4]он группирует по PK, т.е. фактически не группирует раз PK везде разный и max(datetimechange) эффекта не дает. Может есть другие решения?
Соловьев (2004-04-07 12:48:00) [5]
> не позволяет,
ошибка? что значит не позволяет?
Bizon (2004-04-07 12:45:00) [6]select PKcode, DOGNUM, max(datetimechange) from CONTRACTS
group by PKcode, DOGNUM - не позволяет, потому что присутствует группировка по PKcode(договор определяется DOGNUM, а PKcode используется, т.к. данные договора могут меняться)
Соловьев (2004-04-07 12:35:00) [7]
> Max(TimeStamp)...group by PK, Nдог
подробнее