2. Contents
This portfolio contains examples of my development
skills in the Business Intelligence arena.
Subject Page
• Data Modeling 3
• SQL Programming 5
• SQL Server Integration Services (SSIS) 9
• SQL Server Analysis Services (SSAS) 14
• MDX Programming 21
• SQL Server Reporting Services (SSRS) 24
• Performance Point Server (PPS) 27
• Experience Summary 30
2
6. This query returns a list of books where there are less than
ten copies and more than 50 reservations.
SELECT ti.title_no,
ti.title,
rs.isbn,
COUNT(*) as total_reservations
FROM Title ti
JOIN item itm ON ti.title_no = itm.title_no
JOIN reservation rs ON rs.isbn = itm.isbn
WHERE 11 > (SELECT count(cp.copy_no)
FROM copy cp
WHERE cp.isbn = itm.isbn)
AND itm.isbn IN (SELECT DISTINCT rs1.isbn
FROM reservation rs1
WHERE 50 < (SELECT COUNT(*)
FROM Reservation rs2
WHERE rs1.isbn = s2.isbn))
GROUP BY ti.title_no, ti.title, rs.isbn
ORDER BY ti.title_no
6
7. Script to load Date Dimension data into an Analysis Services
staging database table.
(Results on next page)
declare @startDate DateTime,
@EndDate datetime
set @StartDate = '1-1-2006'
set @EndDate = '12-31-2010'
while @StartDate <= @EndDate
begin
insert into DimDates (ActualDate, WeekEndDate, MonthDescr, QuarterDescr, Year,
MonthKey, QuarterKey, ShortWeekEnd, ShortActualDate )
values (@StartDate,
@StartDate + (7 - datepart(dw,@StartDate)), -- assumes a Sunday to Saturday business week
datename(m,@StartDate) + ' ' + cast(year(@StartDate) as varchar(4)) , -- "March 2006"
'Q' + cast(datepart(qq,@StartDate) as varchar(1)) + ' ' + cast(year(@StartDate) as varchar(4)) , -- "Q3 2006"
Year(@StartDate) , -- “2006”
cast(year(@StartDate) as varchar(4)) + '-' +
case when datepart(m,@StartDate) < 10 then '0' else '' end +
cast(datepart(m,@StartDate) as varchar(2)) , -- "2006-12“ or "2006-01"
cast(year(@StartDate) as varchar(4)) + '-' +
cast(datepart(qq,@StartDate) as varchar(1)), -- "2006-1" for key for Q1 2006
'',''
)
set @StartDate = @StartDate + 1
end
update DimDates set ShortWeekEnd = cast(WeekEndDate as varchar(11))
update DimDates set ShortActualDate = cast(ActualDate as varchar(11))
7
GO
10. ETL process which imports multiple CSV files containing Job Time Sheets and
loads them into a staging database. A status email is sent upon completion,
indicating job statistics.
10
11. Data flow task for the Job Time Sheets package processes through a
single CSV file doing multiple lookups to ensure database integrity.
It logs any rows that error out for review and correction.
11
12. VB.Net script used in previous package to keep a
running total of the rows processed and the rows that
contained errors.
12
13. ETL Master Package which runs all ETL packages and then runs database
maintenance tasks. Email is sent out upon completion with job stats.
13