Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Значение на последнюю дату [D7, IB6.x]


Alexey 12 ©   (2006-10-03 09:12:00) 

Есть таблица, которая содержит данные об остатках на счетах.
Поля  номер счета, дата последнего изменения и остаток. Требутся найти остаток на каждом счете на последнюю дату изменения. Запрос типа
select Acc,Max(Dat) from MyTable group by Acc
Выдает номер счета и дату последнего изменения. Поскажите как к результату прицепить зачение остатка на счете.


Alexey 12   (2006-10-04 10:37:00) [1]

to stud [10]
Такой select выдаст данные по всем датам, где сальдо различается.


stud   (2006-10-04 09:29:00) [2]

select Acc,max(Dat), Saldo from MyTable
group by acc,saldo


stud   (2006-10-04 09:27:00) [3]

Alexey 12   (03.10.06 9:12)
Поля  номер счета, дата последнего изменения и остаток.

чето непонятно, если есть дата последнего изменения и остаток, зачем тут агрегаты????


novill   (2006-10-04 09:19:00) [4]

> [7] Alexey 12   (03.10.06 16:40)
яже писал что возможно птребуется вид создать. Ну да фиг с ним.


Alexey 12   (2006-10-03 16:40:00) [5]

to novill
Этот вариант у меня вообще не рабоьает пишет
Token unknown - line 2, char 13 select.


ANB   (2006-10-03 10:51:00) [6]

Аналитические функции тут бы хорошо помогли . . . Но это не оракл :(


novill   (2006-10-03 10:33:00) [7]

Alexey 12, если не "в лом", попробуй оба варианта, напиши какой быстрее.


Alexey 12   (2006-10-03 10:01:00) [8]

to Виталий Панасенко
Спасибо все работает


Johnmen   (2006-10-03 09:55:00) [9]


> novill ©   (03.10.06 09:25) [2]


Вот то, что ты написал - точно не поддерживается.


Виталий Панасенко   (2006-10-03 09:25:00) [10]

select Acc,Dat, Saldo from MyTable t1 where Dat=(select max(dat) from MyTable t2 where t1.Acc=t2.Acc)
Но так будет долго, лучше ХП и for select Acc


novill   (2006-10-03 09:25:00) [11]

select Acc,Dat, ostatok from MyTable
inner join (select Acc,Max(Dat) as dat from MyTable group by Acc) as Lastdate on
lastdate.dat=MyTable.dat and lastdate.Acc=MyTable.Acc

В interbase сначала придется создать вид Lastdate, а потом уже его джоинить, он вроде вложенные запросы не поддерживает.


Наверх

Титульная страница Поиск, карта сайта Написать письмо