Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Пикап Форум - Всемирный форум пикаперов _ Курилка _ БД

Автор: 4YBAK 12.10.2011, 16:33

Мож кто-нить волочет в базах данных?

Есть таблица, например Работники.
Там поля: ФИО Должность Оклад и несколько других.
Например там такая строка есть:
Чувак Расписдяй и другие значения (оклад не заполнен)

И еще таблица Оклады
В ней поля Должность Оклад
К примеру, строки в ней такие:
Сантехник 20000
Слесарь 25000
Токарь 22000
Расписдяй 30000

Как сделать, штоб в таблицу Работники в поле Оклад подтягивался оклад из второй таблицы в зависимости от должности?
Лучше на примере access. Можно на примере любой БД, допру.
В экселе-то просто. Там функция ВПР - и все дела. А в базе как?




Автор: ПикаПикаПикачу 12.10.2011, 17:11

Это надеюсь 1Ска?

нечто типа запроса

Выбрать
Работники.ФИО,
Работники.Должность,
Оклады.Оклад // Оклады должность не надо, она равна работники.должность
Из
Работники
Левое Соединение // т.е. для каждого работника берем из таблицы оклады соотв значение
Оклады
По Работники.Должность = Оклады.Должность

АПД Ну, это если программить можно. Соединение таблиц базы данных при помощи запроса

Автор: Водар Паветра 12.10.2011, 17:40

SQL:

SELECT ФИО, Должность
FROM Работники
JOIN Оклады
ON Работники.Должность=Оклады.Должность

Автор: 4YBAK 12.10.2011, 17:51

нее! не выборку делать.
а ссылку!
штоб в таблице Работники присваивалось значение из таблицы Оклады.

кароче, че нужно:
1) запрос select * from Работники where ФИО="Чувак" должен выдавать Чувак Распиздяй 30000.
2) если в таблице Оклады мы поменяем для должности Расписдяй 30к на 40к, то запрос из пункта 1 будет выдавать Чувак Распиздяй 40000

так мона?

Автор: Водар Паветра 12.10.2011, 18:10

Как ты получишь "Чувак Распиздяй 30000", если у тебя в запросе таблица окладов вообще не фигурирует?

SELECT * FROM
(SELECT ФИО, Должность
FROM Работники
JOIN Оклады
ON Работники.Должность=Оклады.Должность)
WHERE ФИО="Чувак"

Ответ на второй вопрос: да

Автор: 4YBAK 12.10.2011, 18:52

Цитата(Водар Паветра @ 12.10.2011, 19:10) *
Как ты получишь "Чувак Распиздяй 30000", если у тебя в запросе таблица окладов вообще не фигурирует?

дык в этом и суть штоб в табло Работники подтягивались данные из табла Оклады автоматом!
Кароче, штоб в табле работники поле оклад ваще нередактируемое было, а заполнялось токо из таблицы Оклады

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)