Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JOIN по совпадению значения поля с максимумом груп, InterBase 6.0 
:(
    Опции темы
skyboy
Дата 28.12.2006, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



две таблицы, хранящие данные об каръере человека:
Код

CREATE TABLE people
(
 idman integer;
 fio varchar(127) character set win1251
);
CREATE TABLE carier
(
idman integer;
idVacancy integer;
dt TIMESTAMP;
);

человек в разное время мог работать на разных должностях. 
пытаюсь придумать запрос, чтоб вытянуть данные о последней занимаемой должности(с максимальной датой, очевидно), но ничего не выходит smile
Выводить надо FIO человека и idVacancy из таблицы carier - потому просто group by не обойтись.
Дело осложняется тем, что основной опыт - на MySQL, и здесь он плохо применим: что-то вложенные запросы не работают(SELECT FROM SELECT), ХП, как я понял, не могут вызываться в условии ON JOIN'a - только отдельно при помощи EXECUTE... Я в растерянности.  Подбросьте идею, как такое можно реализовать, пожалуйста.
PM MAIL   Вверх
Alex
Дата 30.12.2006, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 7
Всего: 162



поставь FB 2.0 и все вложенные запросы начнут работать

PS:
Писать сечас под IB 6.0 это приступление


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Golden Hands
Дата 30.12.2006, 01:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Золотой
****


Профиль
Группа: Участник Клуба
Сообщений: 2023
Регистрация: 23.1.2005
Где: Екатеринбург

Репутация: 3
Всего: 83



Код

SELECT carier.idman, people.fio, carier.idVacansy
FROM carier, people
WHERE (people.idman=carier.idman) AND (carier.dt=(select max(dt) from carier where carier.idman=people.idman));

В таблице people сделай поле idman ключевым.


--------------------
Мы обречены... но только на победу!
Настанет день, и мы построим новый дом.
Внесем в него тепло, что сохранить сумели,
И воскресим все то, что в нас когда-то умерло... © Тень Света
PM MAIL ICQ   Вверх
skyboy
Дата 30.12.2006, 02:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



Golden Hands, спасибо огромное  smile не знал, что при создании подзапросов, "внешние" таблицы доступны для использования в подзапросах... Потрясающе просто smile
Alex, понимаешь, это условия обучения - ограниченность в выборе инструмента. кроме того, я помгал девушке перепроектировать БД под максимальную, по моему мнению, гибкость. А эта структура не увязалась с SQL в InteRBase(точнее, почти не увязалась - хорошо, что решение-таки нашлось). И я оказался не просто в глупом положении... Вроде как, кинул утопающему(утопающей) вместо спасательного круга камень  smile

Добавлено @ 02:06 
Цитата(Golden Hands @  30.12.2006,  00:37 Найти цитируемый пост)
В таблице people сделай поле idman ключевым. 

само собой smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0602 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.