Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2013, 23:15   #21
Mik121
Новичок
Джуниор
 
Регистрация: 26.09.2013
Сообщений: 17
По умолчанию

Доброй ночи, Аватар!
Что бы я без Вас делал!
Сегодня утром пытался так же, как Вы писали первым вариантом (вчера подсказали про соединение таблиц - почитал - ну, никак!)
А сейчас вечером, оп - вторым вариантом! Получилось! + имена подгрузил этим людям:
SELECT Employees.Name, T1.Salary_rub, Employees_1.Name, T2.Salary_rub
FROM Employees INNER JOIN Employee_to_department AS T1 ON Employees.Employee_id = T1.Employee_id, Employee_to_department AS T2 INNER JOIN Employees AS Employees_1 ON T2.Employee_id = Employees_1.Employee_id
WHERE (((T1.Salary_rub)>[T2].[Salary_rub]) AND ((T2.Employee_id)=[T1].[Chief_id]));

да, з/п странновато..ну, может, это там, где демократия есть - на Марсе, скажем)

Спасибооооооо!!!!!!!!
Mik121 вне форума Ответить с цитированием
Старый 27.09.2013, 23:28   #22
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Сколько много оооо Пожалуйста. Приятно пообщаться с пытающимся понять человеком. Не то что некоторые дуболомы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.09.2013, 02:36   #23
Mik121
Новичок
Джуниор
 
Регистрация: 26.09.2013
Сообщений: 17
По умолчанию

Аватар..не хотел Вас беспокоить. Глянул - думал проще простого (есть готовые рез-ты в интернете), но не тут-то было..

SELECT T1.Department_id, Max(T1.Salary_rub) AS [Max-Salary_rub], T1.Employee_id
FROM Employee_to_department T1
GROUP BY T1.Department_id

Но пишет: "Попытка выполнить запрос, который не включает указанное выражение "Employee_id" как часть статистической группы или функции".
Если в Group by добавлю T1. Employee_id, не получу на выходе:
макс. з/п сотрудников в каждом из отделов с именем этого сотрудника..

Такой вариант - тоже глупость, ест-но..:

SELECT T2.Department_id, T1.Employee_id, Max(T1.Salary_rub) AS [Max-Salary_rub]
FROM Employee_to_department AS T1, Departments AS T2
WHERE T2.Department_id=T1.Employee_id (эта строка глупость)
GROUP BY T2.Department_id, T1.Employee_id

Доброй Ночи. Буду рад Вашему совету!
Mik121 вне форума Ответить с цитированием
Старый 28.09.2013, 11:15   #24
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Тут можно подзапросом получить максимальную зарплату по департаментам, а из основного запроса выдернуть людей, у которых зарплата равна этой максимальной. Примерно так, при этом не уверен, что ACCESS съест. Да, если макс зарплата по департаменту у нескольких сотрудников, то и получим их, а не одного
Код:
SELECT T1.DepId,T1.Сотрудник,T1.Зарплата
  FROM Table1 T1,(SELECT DepId,MAX(Зарплата) AS MAXЗарплата FROM Table1 GROUP BY DepId) T2
  WHERE T1.DepId=T2.DepId AND T1.Зарплата=T2.MAXЗарплата
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 28.09.2013 в 11:21.
Аватар вне форума Ответить с цитированием
Старый 28.09.2013, 13:31   #25
Mik121
Новичок
Джуниор
 
Регистрация: 26.09.2013
Сообщений: 17
По умолчанию

Здравствуйте!
Не хочет запускаться - ругается всё.
Пробую иначе - пока не выходит..)

Не-не-не! должно быть так: имя-отдел-макс з/п (она одна у одного чел. на весь отдел)
Mik121 вне форума Ответить с цитированием
Старый 28.09.2013, 16:35   #26
Mik121
Новичок
Джуниор
 
Регистрация: 26.09.2013
Сообщений: 17
По умолчанию

Вы представляете, я сделал!!
Вот, только проблемка..не могли бы мне объяснить одну строку (я уже перепробовал немало вариантов и эта - бац - заработала)) )?

SELECT DISTINCT Max(T1.Salary_rub) AS [Max-Salary_rub], T2.Department_name,
Employees.Name
FROM Employees INNER JOIN (Employee_to_department AS T1 INNER JOIN Departments AS T2 ON T1.Department_id = T2.Department_id) ON Employees.Employee_id = T1.Department_id (эта Employees.Employee_id = T1.Department - я в конструкторе соединил 2 таблицы таким образом: по разным полям - и всё упорядочилось! Что это за такое?!)
WHERE (((T1.Department_id)=[T2].[Department_id]))
GROUP BY T2.Department_name, T1.Department_id, Employees.Name;
Mik121 вне форума Ответить с цитированием
Старый 28.09.2013, 16:52   #27
Mik121
Новичок
Джуниор
 
Регистрация: 26.09.2013
Сообщений: 17
По умолчанию

Не-а..подгруженные имена не те..совсем не похожи: он первые 6 взял из таблички м именами, и всё на этом..
Mik121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос в access!!!!!! AnKS Microsoft Office Access 2 24.12.2010 16:00
Запрос с датами и временем к Access [D7, Access] alexandr2010 БД в Delphi 3 26.07.2010 22:19
запрос в Access Aleksei83 Microsoft Office Access 2 18.06.2010 21:18
Запрос по выборке таблиц в Accesse. Droid БД в Delphi 3 25.11.2009 15:55