Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / выбрать одну строку по макс значению. / 3 сообщений из 3, страница 1 из 1
15.12.2007, 11:54
    #35012109
olzhas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одну строку по макс значению.
Допустим у меня есть 2 таблицы, таблица городов, и таблица истории изменения численности городов.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 1 -ая таблица
-----------
IdCity CityName
 1  Город1
 2  Город2
-----------

 2 -ая таблица.
-----------
IdCity Population UpdateDate
 1   500000  '2007-01-01'
 1   600000  '2008-01-01'
 2   300000  '2007-01-01'
 2   200000  '2008-01-01'
-----------
теперь я хочу получить город и его население на максимальную дату
что то типа такого


Код: plaintext
1.
2.
IdCity CityName Population  updateDate
 1  Город1  600000  '2008-01-01'
 2  Город2  200000  '2008-01-01'
простой join здесь не поможет так как записи просто задвоятся
...
Рейтинг: 0 / 0
15.12.2007, 16:25
    #35012311
Hunterik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одну строку по макс значению.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
create table city
(
idcity integer not null primary key,
cityname varchar( 50 )
);

create table population
(
idcity integer references city(idcity),
population bigint,
updatedate date
);


insert into city values ( 1 ,'город 1'),( 2 ,'город 2');

insert into population values 
( 1 , 500000 ,'2007-01-01'),( 1 , 600000 ,'2008-01-01'),( 2 , 300000 ,'2007-01-01'),( 2 , 200000 ,'2008-01-01'),( 1 , 500000 ,'2008-02-01');

select c.idcity, c.cityname,
       p.population, p.updatedate from city as c,
                                       population as p
where c.idcity = p.idcity and 
      p.updatedate = (select max(updatedate) from population as pp where pp.idcity = p.idcity)
order by c.idcity;
---------------------------------------------------------------------------------------------
IDCITY      CITYNAME                                           POPULATION           UPDATEDATE
----------- -------------------------------------------------- -------------------- ----------
           1  город  1                                                            500000   01 . 02 . 2008 
           2  город  2                                                            200000   01 . 01 . 2008 
...
Рейтинг: 0 / 0
17.12.2007, 11:17
    #35013947
olzhas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбрать одну строку по макс значению.
спасибо то что нужно.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / выбрать одну строку по макс значению. / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]