"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)