Creation of Tblemployee Table
Creation of Tblemployee Table
Page 1
70-461 Session 2: Querying Microsoft SQL Server 2012
© Filecats Limited 2015
For the full course, go to www.udemy.com
-- % = 0-infinity characters
-- _ = 1 character
-- [A-G] = In the range A-G.
-- [AGQ] = A, G or Q.
-- [^AGQ] = NOT A, G or Q.
Page 2
70-461 Session 2: Querying Microsoft SQL Server 2012
© Filecats Limited 2015
For the full course, go to www.udemy.com
Exercise
COUNT(EmployeeMiddleName) as NumberOfMiddleNames,
count(*)-count(EmployeeMiddleName) as NoMiddleName,
format(min(DateOfBirth),'dd-MM-yy') as EarliestDateOfBirth,
format(max(DateOfBirth),'D') as LatestDateOfBirth
FROM tblEmployee
GROUP BY DATENAME(MONTH,DateOfBirth), DATEPART(MONTH,DateOfBirth)
ORDER BY DATEPART(MONTH,DateOfBirth)
Page 3
70-461 Session 2: Querying Microsoft SQL Server 2012
© Filecats Limited 2015
For the full course, go to www.udemy.com
on tblEmployee.EmployeeNumber = tblTransaction.EmployeeNumber
GROUP BY tblEmployee.EmployeeNumber, EmployeeFirstName, EmployeeLastName
ORDER BY EmployeeNumber
--derived table
Page 4
70-461 Session 2: Querying Microsoft SQL Server 2012
© Filecats Limited 2015
For the full course, go to www.udemy.com
Missing data
select E.EmployeeNumber as ENumber, E.EmployeeFirstName,
E.EmployeeLastName, T.EmployeeNumber as TNumber,
sum(T.Amount) as TotalAmount
from tblEmployee as E
left join tblTransaction as T
on E.EmployeeNumber = T.EmployeeNumber
where T.EmployeeNumber IS NULL
group by E.EmployeeNumber, T.EmployeeNumber, E.EmployeeFirstName,
E.EmployeeLastName
order by E.EmployeeNumber, T.EmployeeNumber, E.EmployeeFirstName,
E.EmployeeLastName
-- derived table
select *
from (
select E.EmployeeNumber as ENumber, E.EmployeeFirstName,
E.EmployeeLastName, T.EmployeeNumber as TNumber,
sum(T.Amount) as TotalAmount
from tblEmployee as E
right join tblTransaction as T
on E.EmployeeNumber = T.EmployeeNumber
group by E.EmployeeNumber, T.EmployeeNumber, E.EmployeeFirstName,
E.EmployeeLastName) as newTable
where ENumber is null
order by ENumber, TNumber, EmployeeFirstName,
EmployeeLastName
Deleting data
-- Version 1
begin transaction
delete tblTransaction
from tblEmployee as E
right join tblTransaction as T
on E.EmployeeNumber = T.EmployeeNumber
Page 5
70-461 Session 2: Querying Microsoft SQL Server 2012
© Filecats Limited 2015
For the full course, go to www.udemy.com
rollback transaction
begin transaction
select count(*) from tblTransaction
delete tblTransaction
from tblTransaction
where EmployeeNumber IN
(select TNumber
from (
select E.EmployeeNumber as ENumber, E.EmployeeFirstName,
E.EmployeeLastName, T.EmployeeNumber as TNumber,
sum(T.Amount) as TotalAmount
from tblEmployee as E
right join tblTransaction as T
on E.EmployeeNumber = T.EmployeeNumber
group by E.EmployeeNumber, T.EmployeeNumber, E.EmployeeFirstName,
E.EmployeeLastName) as newTable
where ENumber is null)
select count(*) from tblTransaction
rollback tran
select count(*) from tblTransaction
Updating data
select * from tblEmployee where EmployeeNumber = 194
select * from tblTransaction where EmployeeNumber = 3
select * from tblTransaction where EmployeeNumber = 194
begin tran
-- select * from tblTransaction where EmployeeNumber = 194
update tblTransaction
set EmployeeNumber = 194
output inserted.EmployeeNumber, deleted.EmployeeNumber
from tblTransaction
where EmployeeNumber in (3, 5, 7, 9)
Page 6