Tải bản đầy đủ (.docx) (4 trang)

Code Hệ Quản Trị Cơ Sở Dữ Liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (32.84 KB, 4 trang )

--module5
--bai 11 module 4
Create Table KH_BAC
(Makh int, TenKh Nchar(30),
Khuvuc Nvarchar(30) NOT NULL CHECK ( Khuvuc='Bac bo'),
PRIMARY KEY (Makh, Khuvuc)
)
Create Table KH_TRUNG
(Makh int, TenKh Nchar(30),
Khuvuc Nvarchar(30) NOT NULL CHECK ( Khuvuc='Trung bo'),
PRIMARY KEY (Makh, Khuvuc)
)
Create Table KH_NAM
(Makh int, TenKh Nchar(30),
Khuvuc Nvarchar(30) NOT NULL CHECK ( Khuvuc='Nam bo'),
PRIMARY KEY (Makh, Khuvuc)
)
create view danhsach
as
select *from dbo.KH_BAC
union all
select *from dbo.KH_TRUNG
union all
select *from dbo.KH_NAM
insert
values
insert
values
insert
values
insert


values
insert
values
insert
values
insert
values
insert
values
insert
values

into danhsach
(123,'Nguyen Van A','Bac bo')
into danhsach
(134,'Sky','Bac bo')
into danhsach
(345,'Tran B','Bac bo')
into danhsach
(111,'Nguyen A','Trung bo')
into danhsach
(245,'Dao Anh','Trung bo')
into danhsach
(342,'Vo Van Kiet','Trung bo')
into danhsach
(435,'Nguyen Dao E','Nam bo')
into danhsach
(349,'Tran Hai','Nam bo')
into danhsach
(342,'Nguyen Duc','Nam bo')


select *
from dbo.danhsach
--I batch
--bai1
declare @tongsoHD int
select @tongsoHD=
count([SalesOrderID])
from [Sales].[SalesOrderDetail]
where [ProductID] =778


if @tongsoHD>500
print 'San Pham' +'778'+'co'+convert(char(5), @tongsoHD)+'tren 500 don
hang'
else print 'san pham '+ convert(char(5), @tongsoHD)+'co it don dat hang'
go
--bai2
declare @makh int,@n int,@nam int
set @makh=11527
set @nam=2008
select @n=count([SalesOrderID])
from [Sales].[SalesOrderHeader]
where [CustomerID]=@makh
and year([OrderDate])=@nam
if(@n<>0)
print 'khach hang '+convert(char(10),@makh)+'co '+convert(char(5),@n)
+'hoa don trong nam 2008'
else
print'Khach hang khong co hoa don nao vao nam 2008'

go
--bai3
use AdventureWorks2008;
go
select [SalesOrderID],sum([LineTotal]) as subtotal,
discount = case
when sum([LineTotal])<10000 then 0
when sum([LineTotal])<12000 then 0.05*sum([LineTotal])
when sum([LineTotal])<15000 then 0.1*sum([LineTotal])
else
0.15*sum([LineTotal])
end
from [Sales].[SalesOrderDetail]
group by [SalesOrderID]
go
--bai4
declare @mancc int,@masp int,@soluongcc int
set @mancc=1650
set @masp=4
select @soluongcc=COUNT(OnOrderQty)
from Purchasing.ProductVendor
if(@soluongcc is null)
print 'Nha cung cap 1650 khong cung cap san pham 4'
else
print'Nha cung cap 1650 cung cap san pham 4 voi so luong
'+convert(char(5),@soluongcc)
go
--bai5
while(select SUM(rate) from
HumanResources.EmployeePayHistory)<6000

begin
update HumanResources.EmployeePayHistory
set Rate=Rate*1.1
if(select MAX(rate)from
HumanResources.EmployeePayHistory)>150
break


else
continue
end
--II function
--bai1
create function countofEmployees
(@mapb int)
returns int
as
begin
return
(select COUNT(DepartmentID)
from HumanResources.EmployeeDepartmentHistory
where DepartmentID=@mapb)
end
declare @mapb int
set @mapb=12
select DepartmentID,Name, countOfEmp=dbo.countofEmployees(DepartmentID)
from HumanResources.Department
--bai2
create function InventoryProd
(@ProductID int,@locationID smallint)

returns int
as
begin
return
(select COUNT(Quantity)
from Production.ProductInventory
where ProductID=@ProductID and LocationID=@locationID)
end
--bai 3
create function UbTotalOfEmp
(@EmplID int,@MonthOrder datetime, @YearOrder datetime)
returns int
as
begin
return
(select COUNT(SubTotal)
from Sales.SalesOrderHeader
where SalesOrderID=@EmplID and YEAR(OrderDate)=@YearOrder and
MONTH(OrderDate)=@MonthOrder)
end
--III Table Valued Functions
--Bai1
create function sumofOrder(@thang datetime,@nam datetime)
returns table
as
return
(select [SalesOrderID],[OrderDate],[SubTotal]
from [Sales].[SalesOrderHeader]
where month([OrderDate])=@thang and year(Orderdate)=@nam
group by [SalesOrderID],[OrderDate],[SubTotal]

having [SubTotal]>70000


)
--Bai2
create function NewBonus()
returns table
as
return
(SELECT Sales.SalesOrderHeader.SalesPersonID,
(Sales.SalesPerson.Bonus+SUM(Sales.SalesOrderHeader.SubTotal)*0.01 )as
Newbonus, SUM(Sales.SalesOrderHeader.SubTotal) as SumofSubTotal
FROM Sales.SalesOrderHeader INNER JOIN Sales.SalesPerson
ON Sales.SalesOrderHeader.SalesPersonID =
Sales.SalesPerson.BusinessEntityID
group by Sales.SalesOrderHeader.SalesPersonID,Sales.SalesPerson.Bonus
)
--Bai3
create function SumofProduct(@MaNCC int)
returns table
as
return
(SELECT Purchasing.ProductVendor.ProductID,
SUM(Purchasing.PurchaseOrderDetail.OrderQty)as SumofProduct,
SUM(Purchasing.PurchaseOrderHeader.SubTotal)as SumOfSubtotal
FROM Purchasing.PurchaseOrderDetail INNER JOIN
Purchasing.PurchaseOrderHeader
ON Purchasing.PurchaseOrderDetail.PurchaseOrderID =
Purchasing.PurchaseOrderHeader.PurchaseOrderID INNER JOIN
Purchasing.ProductVendor

ON Purchasing.PurchaseOrderDetail.ProductID =
Purchasing.ProductVendor.ProductID
where BusinessEntityID=@MaNCC
GROUP by Purchasing.ProductVendor.ProductID
)
--Bai4
create function Discount_func()
returns table
as
return
(
select SalesOrderID,SubTotal,
Discount=case
when SubTotal<10 then 0
when SubTotal>=1000 and SubTotal<5000 then SubTotal*0.05
when SubTotal>=5000 and SubTotal<10000 then SubTotal*0.1
else SubTotal*0.15
end
from Sales.SalesOrderHeader
group by SalesOrderID,SubTotal
)
--Bai5



×