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

Откуда:
Сообщений: 2
Товарищи ГУРУ подскажите пожалуйста:
Есть Таблица 1 - tbl1 (главная) - сотрудники с данными о них.
И Таблица 2 - tbl2 (подчиненная) - в ней данные о периодах работы каждого из сотрудников

ID ID специалиста Начало периода Конец периода Разница
1 1 06.02.2000 06.02.2005 5,0
4 2 06.02.2002 06.02.2006 4,0
5 1 06.02.2005 06.02.2015 10,0
6 2 06.02.2006 06.02.2011 5,0
7 2 06.02.2011 06.02.2015 4,0

ID специалиста - ID в главной таблице.

Я (новичок) написал запрос: SELECT max(tbl2.NachaloPerioda) FROM tbl1, tbl2 WHERE KodSpecialista=tbl1.id - Вам понятно что выводит, но мне необходима разница в tbl2 которая получается из последнего периода сотрудника. Т.е. это у сотрудника 1 - 10.0, а у сотрудника 2 - 4.0. Как эти цыфири получить, голова не рожает мысль, увы.
Спасибо за понимание.
6 фев 15, 18:05    [17230072]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из подчиненной таблицы  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21249
WHERE ROW_NUMBER() OVER (PARTITION BY ID_Spec ORDER BY PeriodStart DESC) = 1
6 фев 15, 19:06    [17230285]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из подчиненной таблицы  [new]
midivl
Member

Откуда:
Сообщений: 2
Akina,

Извините, но нескладушки. Вы можете разьяснить?
6 фев 15, 19:38    [17230424]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из подчиненной таблицы  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Akina
WHERE ROW_NUMBER() OVER (PARTITION BY ID_Spec ORDER BY PeriodStart DESC) = 1
ROW_NUMBER() можно писать только в SELECTе и в ORDER BY.
Однако, имеется более десятка тем, где написано правильно.
Всё изложено и в местном FAQ
8 фев 15, 17:12    [17234973]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из подчиненной таблицы  [new]
Добрый Э - Эх
Guest
midivl,

RTFF
8 фев 15, 18:39    [17235160]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из подчиненной таблицы  [new]
vikkiv
Member

Откуда: EU
Сообщений: 2960
select kod,nachalo,konec,diff from(select kod,nachalo,konec,cast(round(datediff(day,nachalo,konec)/365.55,1) as decimal(5,1))diff,row_number()over(partition by kod order by konec desc)r from tabn)x where r=1
8 фев 15, 18:45    [17235169]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить