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

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

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2011, 18:46   #1
newStudent
Пользователь
 
Аватар для newStudent
 
Регистрация: 07.07.2010
Сообщений: 44
Вопрос Объединение 2-х таблиц

Нужно объединить 2 таблицы
Первый запрос выводит отделы и общую зарплату сотрудников
Второй запрос выводит отделы и ответственного по отделу

В обоих запросах количество записей равно, т.к. идет вывод отделов.

Код:
SELECT Otdely.Nazvanie_otdela 'Отдел', SUM(Dolzhnosti.Oklad) 'ЗП', SUM(Dolzhnosti.Oklad) - (13 * SUM(Dolzhnosti.Oklad) / 100) 'ЗП с вычетом 13%'
FROM Otdely, Sotrudniki, Dolzhnosti
WHERE Otdely.Otdel_ID = Sotrudniki.Otdel_ID AND Sotrudniki.Dolzhnost = Dolzhnosti.Nazvanie_dolzhnosti
GROUP BY Otdely.Nazvanie_otdela;


SELECT Otdely.Nazvanie_otdela 'Отдел', Sotrudniki.FIO
FROM Otdely, Sotrudniki
WHERE Sotrudniki.Otvetstvenii_za_poluch = '1' AND Otdely.Otdel_ID = Sotrudniki.Otdel_ID
GROUP BY Otdely.Nazvanie_otdela, Sotrudniki.FIO;
newStudent вне форума Ответить с цитированием
Старый 21.04.2011, 19:26   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

попробуйте так (не совсем "честно", но должно работать):
Код:
SELECT Otdely.Nazvanie_otdela 'Отдел', SUM(Dolzhnosti.Oklad) 'ЗП', SUM(Dolzhnosti.Oklad) - (13 * SUM(Dolzhnosti.Oklad) / 100) 'ЗП с вычетом 13%',
Max(SOtv.Sotrudniki.FIO) as 'ФИО ответственного'
FROM Otdely, Sotrudniki, Dolzhnosti, Sotrudniki SOtv
WHERE Otdely.Otdel_ID = Sotrudniki.Otdel_ID 
  AND Sotrudniki.Dolzhnost = Dolzhnosti.Nazvanie_dolzhnosti
  AND SOtv.Otvetstvenii_za_poluch = '1' 
  AND Otdely.Otdel_ID = SOtv.Otdel_ID
GROUP BY Otdely.Nazvanie_otdela;
p.s.
если вдруг в каком-то отделе не будет отвественного,
тогда этот отдел ВООБЩЕ не попадёт в выборку..
впрочем, у Вас, судя по
Цитата:
обоих запросах количество записей равно
с этим всё в порядке - в каждом отделе есть (и строго только один!) ответственный!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.04.2011, 19:37   #3
newStudent
Пользователь
 
Аватар для newStudent
 
Регистрация: 07.07.2010
Сообщений: 44
По умолчанию

Да, в условии сказано, что ответственный в каждом отделе должен быть один (ни больше, ни меньше)
Спасибо, запрос сработал.
А почему не совсем честно?

Последний раз редактировалось newStudent; 21.04.2011 в 19:42.
newStudent вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объединение двух таблиц go2net Microsoft Office Excel 4 12.08.2010 00:11
Объединение таблиц jtn Microsoft Office Excel 0 03.02.2010 19:07
Объединение двух таблиц jekis2506 Microsoft Office Excel 5 15.04.2009 08:34
объединение таблиц по условию rexec Microsoft Office Excel 2 25.05.2008 15:42
Объединение таблиц Paradox в приложении Lady_olga БД в Delphi 5 16.03.2008 23:21