Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 14.05.2015
Сообщений: 11

Хранимые процедуры

02.12.2015, 14:52. Показов 1554. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день,помогите,ребят)
Создаю базу данных английского чемпионата,вот столкнулся с проблемами.
Не могу создать хранимую процедуру,которая выбирала бы 3х самых дорогих футболистов,увеличивала бы их стоимость на 5% и при выводе говорила,что это номинанты на ЗМ и выводила новую стоимость.

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE PROCEDURE sale @percent INT=5, @n VARCHAR(30) OUTPUT
AS
IF @percent > 0 AND @percent <100
BEGIN 
    SELECT @n=player_name FROM PLAYER
    GROUP BY player_name
    HAVING SUM(player_cost) > ALL
    (SELECT TOP 3 player_cost FROM PLAYER GROUP BY player_cost)
                                                                                   
    UPDATE PLAYER
        SET player_cost=player_cost*(100-@percent)/100
            WHERE player_name=@n
END
            
            DECLARE @name VARCHAR(100)
            EXEC sale 1,@name OUTPUT
            PRINT 'Номинанты на ЗМ ' + @name + ' их цена соответственно' + ??
таблица player
SQL
1
2
3
4
5
6
7
8
9
10
CREATE TABLE PLAYER 
    (player_name    VARCHAR(100) PRIMARY KEY NOT NULL,
    player_position VARCHAR(100) NOT NULL,
    player_age  NUMERIC(10),
    player_national_team VARCHAR(15),
    player_cost NUMERIC(10),
    club_name VARCHAR(100),
    CONSTRAINT fk_player_club_name FOREIGN KEY(club_name)
        REFERENCES CLUB (club_name)
)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.12.2015, 14:52
Ответы с готовыми решениями:

Создание хранимой процедуры, которая создает хранимые процедуры
Написать хранимую процедуру SQL , которая будет создавать хранимые процедуры(любые) для БД.

Хранимые процедуры
Мне нужно чтобы в зависимости от выбранной страны в comboBox на форме в WindowsForm(например Россия) по этому запросу получалась таблица, в...

Хранимые процедуры
Есть 2 таблицы create table личность (код_личности int not null primary key identity (1,1), Ф_И_О NVARCHAR(MAX) not null, ...

5
 Аватар для operaphantom
21 / 21 / 12
Регистрация: 24.10.2014
Сообщений: 53
02.12.2015, 16:14
Лучший ответ Сообщение было отмечено Demmy_art как решение

Решение

Ну, в общих чертах как-то так.

Но хотелось бы сделать пару замечаний:
1) Было бы неплохо сделать уникальный айдишник в таблице.
2) Продумать момент а что если у нас будет 100500 футболистов в одинаковой стоимостью, как топ-3 выбирать будете? =)

T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
CREATE PROCEDURE sales @percent int = 5
AS
BEGIN
    SET NOCOUNT ON;
 
    declare @bestPlayers table
    (
        player_name nvarchar(100),
        player_cost numeric(10)
    )
 
    insert into @bestPlayers
    select top 3 player_name, player_cost*(100+@percent)/100 from player order by player_cost desc
 
    update p
    set p.player_cost = bp.player_cost
    from player p join @bestPlayers bp on p.player_name = bp.player_name
    
    declare @names nvarchar(100) = ''
    declare @prices nvarchar(100) = ''
 
    select @names = case when @names = '' then player_name else @names + ';' + player_name end from @bestPlayers
    select @prices = case when @prices = '' then cast(player_cost as nvarchar) else @prices + ';' + cast(player_cost as nvarchar) end from @bestPlayers
 
    PRINT 'Номинанты на ЗМ ' + @names + ' их цена соответственно' + @prices
 
END
GO
1
0 / 0 / 0
Регистрация: 14.05.2015
Сообщений: 11
02.12.2015, 17:12  [ТС]
Спасибо большое)
А вот еще вопрос,я при заполнение вбивал руками стоимость футболистов.
Эта самая хранимая процедура,что выше никак не работала,я и так и сяк ее переделывал,постоянно удаляя.
Но player_cost не обнулялись,видимо.

В итоге сейчас там полный хаос)
Как можно к первоначальным суммам вернуться?)
Миниатюры
Хранимые процедуры  
0
0 / 0 / 0
Регистрация: 14.05.2015
Сообщений: 11
02.12.2015, 17:53  [ТС]
И что означают пустые скобки '' при объявлении переменных?)
0
 Аватар для operaphantom
21 / 21 / 12
Регистрация: 24.10.2014
Сообщений: 53
02.12.2015, 18:15
Цитата Сообщение от Demmy_art Посмотреть сообщение
Как можно к первоначальным суммам вернуться?)
Грустно жить без бэкапов. =\

Цитата Сообщение от Demmy_art Посмотреть сообщение
И что означают пустые скобки '' при объявлении переменных?)
Означает, что при объявлении переменных там вначале находятся пустые строки.
0
0 / 0 / 0
Регистрация: 14.05.2015
Сообщений: 11
02.12.2015, 18:19  [ТС]
Бэкапам нас не учили
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.12.2015, 18:19
Помогаю со студенческими работами здесь

Хранимые процедуры
Приветствую всех. Вот в чём вопрос создал я хранимую процедуру которая создаёт таблицу, вот как мне передать в неё имя таблицы? CREATE...

Хранимые процедуры
Здравствуйте, мне нужно сделать хранимую процедуру, которая по названию континента показывает количество водоемов каждого типа на этом...

Хранимые процедуры
Столкнулся со странной проблемой никак не могу создать хранимую процедуру, говорит типа текстовые аргументы не допустимы. Исключая их...

хранимые процедуры
доброе время суток.. у меня такой вопрос: читал про компиляцию хранимых процедур и окончательно запутался(( вопрос мой такой: у меня...

Хранимые процедуры
Всем привет! Есть такое задание: Увеличить количество часов на лабораторные работы на 5%, а количество лекций уменьшить на 5 % по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru