Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Вопрос-Ответ Новый топик    Ответить
 Редкие задачи SQL  [new]
JenkusPenkus
Member

Откуда:
Сообщений: 127
Есть БД
А в ней таблица с инфой на клиентов (на каждого клиента по id несколько записей)
Очень нужно выбрать Distinct всех клиентов причем по максимальному значению даты.

Помогите, чем могите!

ЗЫ
Сам пока буду искать, если найду здесь оставлю решение
7 окт 04, 07:28    [1014567]     Ответить | Цитировать Сообщить модератору
 Re: Редкие задачи SQL  [new]
Добрый
Member

Откуда: Киев
Сообщений: 136
create table CliInfo(
   idcli number(1)
 , d_change date
 , info varchar2(5)
 , constraint CliInfo_pk primary key (idcli,d_change)
);

insert into CliInfo values (1,'01.09.2004','Text1');
insert into CliInfo values (1,'08.09.2004','Text2');
insert into CliInfo values (2,'01.09.2004','Text3');
insert into CliInfo values (2,'07.09.2004','Text4');
insert into CliInfo values (2,'12.09.2004','Text5');

select 
    ci.idcli
  , ci.d_change
  , ci.info 
from  
     CliInfo ci,
     (select 
           idcli
          ,max(d_change) as d_change 
      from CliInfo 
      group by idcli
     ) t
where 
            ci.idcli = t.idcli
      and ci.d_change = t.d_change;

IDCLI       D_CHANGE        INFO
--------------------------------------------
      1      08.09.2004                 Text2
      2      12.09.2004                 Text5

или

select * 
from CliInfo
where 
      (idcli,d_change) in (select idcli
                                 ,max(d_change) as d_change 
                           from CliInfo 
                           group by idcli);

IDCLI       D_CHANGE        INFO
--------------------------------------------
      1      08.09.2004                 Text2
      2      12.09.2004                 Text5
7 окт 04, 12:10    [1015458]     Ответить | Цитировать Сообщить модератору
Все форумы / Вопрос-Ответ Ответить