powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите составить процедуру с запросом
7 сообщений из 7, страница 1 из 1
Помогите составить процедуру с запросом
    #39705791
stelgi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть 2 таблицы
Сотрудники
Отделы

Необходимо создать процедуру, которая выводит суммарную премию отдела, по фамилии его начальника.
Т.е процедура будет с параметром. Вывод: одна строка, 2 столбца, фамилия начальника и суммарная премия
Сам я пробовал делать, но все что получилось ниже не правильно работает.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE PROCEDURE ZASH
@N char(30) 
AS 
BEGIN 
SELECT С.Фамилия As Фамилия_начальника, SUM(С.Премия) 
FROM Сотрудники,Отделы 
LEFT OUTER JOIN Сотрудники С ON С.Код_отдела=Отделы.Код_отдела 
WHERE С.Фамилия = @N 
AND С.Код_отдела = Отделы.Код_отдела 
GROUP BY С.Фамилия 
END


Я новичок, и не очень соображаю что я делаю, прошу помощи.
Будуочень благодарен.
...
Рейтинг: 0 / 0
Помогите составить процедуру с запросом
    #39705800
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CREATE PROCEDURE ZASH
@N char(30) 
AS 
BEGIN 

with p as ( select * from Сотрудники )
    , d as ( select * from Отделы )
  select @N As Фамилия_начальника
        , d.Название_отдела
        , Премия = ( select sum(Премия) from p as p1 where p1.Код_отдела = p.Код_отдела )
     from d inner join p on p.Код_отдела = d.Код_отдела and p.Табельный_номер = d.Табельный_номер_начальника_отдела
     where p.Фамилия = @N 


END
...
Рейтинг: 0 / 0
Помогите составить процедуру с запросом
    #39705870
stelgi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CREATE PROCEDURE ZASH
@N char(30) 
AS 
BEGIN 

with p as ( select * from Сотрудники )
    , d as ( select * from Отделы )
  select @N As Фамилия_начальника
        , d.Название_отдела
        , Премия = ( select sum(Премия) from p as p1 where p1.Код_отдела = p.Код_отдела )
     from d inner join p on p.Код_отдела = d.Код_отдела and p.Табельный_номер = d.Табельный_номер_начальника_отдела
     where p.Фамилия = @N 


END


Может я чего упустил, но данная конструкция не работает, пустые строки выводит независимо от вводимого параметра
...
Рейтинг: 0 / 0
Помогите составить процедуру с запросом
    #39705978
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stelgi,

Код: sql
1.
2.
3.
4.
5.
select
	[ФИО нач.отдела]		=@N 
	,[Сумма премии]			=sum(Премия)
from Сотрудники t
where t.Код_отдела=(select a.Код_отдела from Отделы a inner join Сотрудники b on a.Табельный_номер=b.Табельный_номер_начальника_отдела where a.Фамилия=@N)
...
Рейтинг: 0 / 0
Помогите составить процедуру с запросом
    #39705982
Massa52
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
court,
Вроде полагается TOP (1) тут в SELECT
Код: sql
1.
where t.Код_отдела=(select a.Код_отдела from Отделы a inner join Сотрудники b on a.Табельный_номер=b.Табельный_номер_начальника_отдела where a.Фамилия=@N)
...
Рейтинг: 0 / 0
Помогите составить процедуру с запросом
    #39705998
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Massa52court,
Вроде полагается TOP (1) тут в SELECT
Код: sql
1.
where t.Код_отдела=(select a.Код_отдела from Отделы a inner join Сотрудники b on a.Табельный_номер=b.Табельный_номер_начальника_отдела where a.Фамилия=@N)

Нуу, если у ТС один и тот же нОчальник может "рулить" несколькими отделами, то - "да", ТОП 1 не помешает.
Правда, результат тогда будет "не очень" правильный :)

Так что IN наше всё !!1 :))
Код: sql
1.
where t.Код_отдела IN (select a.Код_отдела from Отделы a inner join Сотрудники b on a.Табельный_номер=b.Табельный_номер_начальника_отдела where a.Фамилия=@N)
...
Рейтинг: 0 / 0
Помогите составить процедуру с запросом
    #39706013
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
court,

авторНуу, если у ТС один и тот же нОчальник может "рулить" несколькими отделами, то - "да", ТОП 1 не помешает.
Правда, результат тогда будет "не очень" правильный :)

смовмещение нынче сплошь и рядом.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите составить процедуру с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]