"Dmitry Kotelnikov" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED]
> 
> Приветствую Вас,
> 
> Помогите с запросом, а то уже с утра сижу не могу додумать:
> Для примера есть 2 таблички:
> 
> CREATE TABLE DIR_EMPLOYEES (
>    ID       INTEGER NOT NULL,
>    NAME     VARCHAR(50),
>    PAR1       VARCHAR(50),
>    PAR2       VARCHAR(50),
>    PAR3       VARCHAR(50),
> );
> 
> CREATE TABLE DIR_EMPLOYEES_HIS (
>    ID         INTEGER NOT NULL,
>    PID        INTEGER,
>    DATE_FROM  TIMESTAMP,
>    PAR4       VARCHAR(50),
>    PAR5       VARCHAR(50),
>    PAR6       VARCHAR(50)
> );
> 
> Первая табличка это данные о сотруднике, а вторая это история данных
> переменных реквизитов. Надо вывести всех сотрудников и первую
> попавшуюся из истории реквизитов.
> 
> SELECT
>  e.id,
>  e.name,
>  e.par1,
>  eh.date_from,
>  eh.par5,
> FROM
>  dir_employees e
>    LEFT JOIN dir_employees_his eh
>      ON (
>        e.id = eh.pid AND
>        eh.date_from < CURRENT_TIMESTAMP
>      )

 SELECT
  e.id,
  e.name,
  e.par1,
  eh.date_from,
  eh.par5,
 FROM
  dir_employees e
    LEFT JOIN dir_employees_his eh    ON     e.id = eh.pid AND  eh.ID = (select 
max или first 1 ID  from dir_employees_his where pid = eh.pid)

Ответить