USE [Community_Assist]
GO
/****** Object: View [dbo].[vw_HumanResources] Script Date: 5/11/2016 10:11:00 AM ******/
ALTER view [dbo].[vw_HumanResources] with Schemabinding
AS
Select PersonLastName [LastName],
PersonFirstName [FirstName],
PersonEmail Email,
PersonAddressStreet [Address],
PersonAddressCity City,
PersonAddressZip ZipCode,
EmployeeHireDate HireDate
From dbo.Person p
Inner Join dbo.PersonAddress pa
on p.PersonKey=pa.PersonKey
inner join dbo.Employee e
on e.PersonKey = p.PersonKey
GO
--cross apply
Select Distinct a.GrantTypeKey, c.GrantRequestAmount
From dbo.GrantRequest a
cross Apply
(Select grantTypeKey, grantRequestAmount
From GrantRequest as b
Where b.GrantTypeKey = a.GrantTypeKey
Order By b.GrantRequestAmount desc, GrantTypeKey desc
Offset 0 rows fetch first 3 rows only) as c
Begin tran
Alter table person
Drop column PersonEmail
Rollback tran
--Set operators and modifying data
--Windows functions pivot
Select PersonKey, PersonFirstName, PersonLastName, PersonEmail
From Person
Union
Select EmployeeKey,EmployeefirstName, EmployeeLastName, EmployeeEmail
From MetroAlt.dbo.Employee
Select PersonAddressCity From PersonAddress
intersect
Select EmployeeCity from MetroAlt.dbo.Employee
Select PersonAddressCity From PersonAddress
Except
Select EmployeeCity from MetroAlt.dbo.Employee
Select EmployeeCity from MetroAlt.dbo.Employee
except
Select PersonAddressCity From PersonAddress
/******************************************
*********Not part of assignment*********/
--ranking functions
Select GrantRequestKey, GrantTypeKey, GrantRequestAmount,
Row_Number() over (order by GrantRequestAmount desc) as RowNumber,
Rank() over (order by GrantRequestAmount desc) as [Rank],
Dense_rank() over (order by GrantRequestAmount desc) as [DenseRank],
Ntile(10) over (order by GrantRequestAmount desc) as [NTile]
From GrantRequest
Order by GrantRequestAmount desc
--partition functions
Select GrantRequestKey, GrantTypeKey, GrantRequestAmount,
Sum(GrantRequestAmount) over() as TotalAllocation,
sum(GrantRequestAmount) over(partition by GrantTypeKey) as PerType,
(sum(GrantRequestAmount) over(partition by GrantTypeKey) /
Sum(GrantRequestAmount) over() * 100) as [TypePercentOfWhole],
GrantRequestAmount/
sum(GrantRequestAmount) over(partition by GrantTypeKey) * 100 as GrantPercentOfType
From GrantRequest
Order by GrantTypeKey
--pivot
Select * from GrantRequest
Select [Month], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10]
From (Select Month(GrantRequestDate) as [Month] ,GrantTypeKey, GrantRequestKey
From dbo.GrantRequest) as a
pivot (Count(GrantRequestKey) for GrantTypeKey in
([1], [2], [3], [4], [5], [6], [7], [8], [9], [10])) AS b
/*************************************************/
--Inserts
Insert into person
(PersonLastName, PersonFirstName, PersonEmail, PersonEntryDate)
Values('Simpson', 'Homer', 'Homer@springfield.com', GetDate()),
('Simpson','Marge','Marge@springfield.com',GetDate())
Select * from Person
Create Table Person2
(
Lastname nvarchar(225),
FirstName nvarchar(255),
Email nvarchar(255)
)
Insert into Person2(LastName, firstname, email)
Select PersonLastName, PersonFirstName, PersonEmail
From Person
Select * from Person2
Begin tran
Update Person2
Set FirstName='Jason'
Where Email='JAnderson@gmail.com'
Commit Tran
Update Person2
Set LastName='Smith'
Rollback tran
Delete from Person2
Where PersonKey=130
Select * from Person
Drop Table Person2
Wednesday, May 11, 2016
Set Operators and modifying data
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment