Пятница, 29.03.2024, 03:01
LOGAN PRODUCTION
Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: LOGAN  
Форум » Программирование » Собственноручное программирование » SQL (homework)
SQL
LOGANДата: Понедельник, 22.02.2010, 00:36 | Сообщение # 1
Король
Группа: Администраторы
Сообщений: 225
Награды: 3
Репутация: 2
Статус: Ушел
ДЗ пр 1,2
И хранимые процедуры, и функции.

1.необходимо создать хранимую процедуру, выводящую на экран список преподавателей, которые брали книги в библиотеке (база данных Library).
use library
go
Create proc Show_t
as
select Teachers.FirstName
from T_Cards,Teachers
where T_Cards.Id_Teacher=Teachers.Id
--exec Show_t

2.Нужно показать книги по определенной тематике, при этом тематику необходимо передать при вызове

use library
go
Create proc Show_themes
@themes_name varchar(25)output
as
begin
select Books.Name
from Themes,Books
where @themes_name=Themes.Name
end
--use library
--go
--exec Show_themes 'Базы данных'

3. Необходимо создать хранимую процедуру, с помощью которой можно получить список студентов, у которых первая буква в фамилии лежит в диапазоне от А до К.

use library
go
create proc show_s
as
begin
select Students.FirstName
from Students
where Students.FirstName BETWEEN 'А'=CONVERT(char,Students.FirstName) and 'К'=CONVERT(char,Students.FirstName)

end

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

use library
go
--create proc show_izd
--as
--begin
-- select Press.Name
-- from Press,Books
-- where Press.Id >(select MAX(Books.Id_Press)from Books)
--end
exec show_izd

1. Необходимо создать хранимую процедуру, которая вернет кол-во взятых с библиотеки книг преподавателями.
2. use library
3. go
4. --create proc take_t
5. --as
6. --begin
7. -- select sum(T_Cards.Id_Book)
8. -- from Teachers,T_Cards
9. -- where T_Cards.Id_Teacher=Teachers.Id
10. --end
11. exec take_t

6
Необходимо написать хранимую процедуру, выводящую на экран книги и цены по указанной категории, при этом необходимо указывать направление сортировки. 0 - сортировка результата по цене по убыванию, 1 - по возрастанию, любое другое - без сортировки. (многотабличная Books).

use library
go
--create proc booksandPrices
--as
--begin
-- select Books.Name,Categories.Name
-- from Categories,Books
-- where Books.Id=Categories.Id
-- ORDER BY Books.Name asc

--end
exec booksandPrices

7
1. Написать хранимую процедуру, возвращающую имя и фамилию библиотекаря, выдавшего наибольшее кол-во книг.
2. use library
3. go
4. create proc lbrman
5. as
6. begin
7. select Libs.FirstName,Libs.LastName
8. from Libs,S_Cards, T_Cards
9. where Libs.Id=T_Cards.Id_Lib and Libs.Id=S_Cards.Id_Lib
10.
11. end
12. --exec lbrman13.

8 Не понял задания…

Функции

1. Функцию, возвращающую кол-во студентов, которые не брали книги.
2. use library
3. go
4. create function stundentsNOT()
5. Returns table
6. as
7.
8. return (select s.firstname
9. from students as s,s_cards
where s.id!=S_cards.id_student)

2. Функцию, возвращающую минимальное из трех переданных параметров.

Функция :

use library
go
create function minimum(@first int, @second int,@three int)
returns int
as
begin
if(@first>@second and @first>@three)
return @first
if(@second>@first and @second>@first)
return @second
if(@three>@first and @three>@second)
return @three
return -1;
end

Вызов:
use library
go
select library.dbo.minimum(1,3,2)

3.

use library
go
create function maxi(@first int)
returns int
as
begin
if(@first%10)>(@first%100)return @first%10
if(@first%10)<(@first%100)return @first%100
return -1;
--return -1;
end

Вызов

use library
go
select library.dbo.minimum(56)



Go go go
http://www.logan.at.ua/
Guess who's back
http://www.progryz.ru/
 
Форум » Программирование » Собственноручное программирование » SQL (homework)
  • Страница 1 из 1
  • 1
Поиск:

>>>LOGAN.AT.UA<<< © 2024