Friday, January 31, 2014

Chapter 5 homework, All lessons

Greetings, after reading through chapter 5 completely now, I think I should write out some homework that will integrate just about everything that I've done but focus primarily on Lesson 3 since I haven't done individual homework for that lesson yet.

Here are a few:

1) Return for each order the customer ID, order ID, and order value, using the window function, the query should also return a grand total for all values, and customer total.  Use Sales.ordervalues view
Pg. 173

2) Use query from question 1 and turn customer total, and grand total into percentage called pctcust, and pcttotal
pg. 173

3) Create a running total from the beginning of a current customer's activity until the current order.  Partition using custid, order the window by order date, orderid.  
pg 174

4)Write query against the sales.ordervalues view that returns per each custid, and orderid the moving average value of the customers last four orders.
pg 181

5)Write a query against the sales.orders table and filter the three orders with the highest freight values per each shipper (shipperid) using ordered as the tie breaker
pg. 181

6)From earlier post: USE TSQL2012 and create a table called 'freightavg' that uses selects custid, shipperid, and freight from sales.orders.  Pivot data in freightavg to find the the average freight totals for customers with custid's between 5 and 10….. with shipperid of 1, 2, 3.  Label this table as Fa
pg. 166

7)Unpivot custid, shipperid, freight from the sales.freighttotals table as unpivoted (need to create sales.freighttotals for this, see book)
Pg 167

8)Write a query that computes the number of orders per each customer, and their city's for customers in Sweden…UPDATE(3/23/14) Use sales.orders to find custid, use sales.customers to find city & country
Answer pg. 160

9)Use query from question 8, and add a grand count.  Use grouping sets for this
Answer pg 161














CREDIT: Querying Microsoft SQL Server 2012  BY Itzik Ben-Gan, Dejan Sarka, Ron Talmage

Homework Answers Pivoting Lesson

Here are a few of the answers for the questions I had posted before regarding pivoting:

--My made up homework--
--1)
WITH freightav AS
(SELECT custid, shipperid, freight
FROM sales.orders)
SELECT custid, [1], [2], [3]
FROM freightav
PIVOT(AVG(freight) FOR shipperid IN ([1], [2], [3]) ) AS P
WHERE custid BETWEEN 5 AND 10

--2) My first try
WITH Pivotdata AS(
SELECT YEAR(orderdate) AS yr, shipperid, shippeddate
FROM sales.orders)
SELECT YEAR(orderdate) AS yr, [1], [2], [3]
FROM sales.orders
PIVOT(MAX(shippeddate) FOR shipperid IN ([1], [2], [3])) AS p

--2) Redone Correctly
WITH pivotdata AS(
SELECT YEAR(orderdate) AS yr, shipperid, shippeddate
FROM sales.orders)
SELECT yr, [1], [2], [3]
FROM pivotdata
PIVOT (MAX(shippeddate) FOR shipperid IN ([1], [2], [3])) AS p

--3) My version
WITH pivotdata AS(
SELECT custid, shipperid, orderid
FROM sales.orders
WHERE orderid IS NOT NULL)
SELECT custid, [1], [2], [3]
FROM pivotdata
PIVOT(COUNT(orderid) FOR shipperid IN([1], [2], [3])) AS P



Thursday, January 30, 2014

SQL Server Developer

I finally was able to install SQL Server Developer onto my pc after having to clear a bunch of stuff in order for it to fit on the ssd.

One thing that I forgot to do was to save my test database, but no biggy, it will only take 2 minutes to create and add a few values.  Good practice anyhow!

I currently only have TSQL2012 database on the server, and need to add the modifications that they made to use in the book.

Going to do homework for the next hour or so, then try to work through lesson 3 of chapter 5 one more time so that I can have an even more solid grip on the OVER and PARTITION clauses.

One last note has to do with visual studio… it was installed when I installed my developer version of SQL, I watched a few novice videos on youtube that used it, and it was very cool!  It's neat to see how everything can come together!

Cheers, will be posting homework answers before to long.

Tuesday, January 28, 2014

Chapter 5 Lesson 2 Homework - Pivot, Unpivot

It's been about 4 days since I posted anything, busy with stuff, but ready to keep my head down and continue to grind.  Now that the syntax is becoming a bit more complicated I feel like I need to put more practice into what I'm doing, before absorbing more syntax and more info.

I've read through chapter 5, lesson 3 is especially heavy on syntax so I've been trying to do the homework that I assigned myself for chapter four and chapter five on a daily basis.  It usually takes me a half hour to forty minutes to get through.  I really have to pay attention to detail when doing it because one miss step and I will get it wrong… it's important to take your time when working through these.  They are an excellent for practice at lunch time or casual times of the day like that.

On a separate note, I should be receiving SQL Server Developer today in the mail, excited to put it to use with virtual box, and play around with it… more on that in future posts!

Here is are a few questions for pivoting that I've drawn up, again simple to write out AS LONG AS YOU KNOW THE SYNTAX!

1) USE TSQL2012 and create a table called 'freightavg' that uses selects custid, shipperid, and freight from sales.orders.  Pivot data in freightavg to find the the average freight totals for customers with custid's between 5 and 10….. with shipperid of 1, 2, 3.  Label this table as Fa

2) Homework exercises on pages 168 and 169 are especially good

Friday, January 24, 2014

Pivotal Pivoting

Looking over pivoting again this morning.  Trying to make sense of it and running through a few homework sets so that I can play around with them to generate errors and the like.

A few key things to remember, the grouping element is what you want to see on the rows of the table, the spreading element should be the columns, this needs to be defined.  The Pivot syntax as I begin to remember it goes like this

With cte as (
SELECT grouping column, spreading column, aggregate
FROM table)

SELECT grouping element
FROM cte
PIVOT(Aggregate function --like sum, count, min, max, etc) FOR spreading column IN (distinct value)

From the example that I wrote yesterday from the blog http://terrychoo.com/understanding-the-pivot-function/ I added in more data to make more sense of everything.  Here is the data that I added into the @orders table (

INSERT INTO @orders (custid, empid, shipperid, freight)
VALUES (87,3,2,6.0), (87, 3, 2, 4.0)

--highlighted numbers will be aggregated because they are freight value.

Since we're trying to find the total freight for each customerid, with the shipperid like 1, 2, or 3, when you add in another set of values (or two) you can see how the pivot is working because you can see the aggregation for the customerid that is 85, and the aggregation when the customerid is 87.  Here is the result set (pardon the spacing, it was done free handed):

custid      1                 2              3
-------------------------------------------
85         6.01            8.94 43.46

87       NULL        10.00 NULL

Now it's more clear which elements are spreading and grouping… we're grouping on customerid (that's why only one custid appears) and we're spreading with shipperid, then the aggregation appears as the intersection of the two.

The last note on this as I continue to play with is is that you must identify unique values for the "IN" clause… you can't just say, "FOR <spreading clause>;" this returns and error.  Also, I thought that the square brackets weren't necessary but it appears they are as I generated an error when just putting numbers in the IN clause, or when I put the spreading elements in single quotes… 

Next we UNPIVOT!

Cheers!

Thursday, January 23, 2014

Pivot and Unpivot, the practical use

Greetings again,

Pivoting is a tougher one to understand because the syntax seems to be more challenging then simply, select, from, join, where stuff… Tangent real quick --> I started writing my home work code in the grouping lessons starting with FROM, then going back and writing SELECT after, I believe logically that is how SQL works, and it definitely makes sense… try it it works great!

Back to pivoting, yes hard to understand because the syntax is different, but as long as you know what it does and what goes where I think it can be useful.  I've read a few blogs on pivoting because the book only got me so far, and stumbled upon a few very good articles, as well as comments.  Here was one in which help turn on the light for me because of the fact that they make a practical use out of pivoting, in an explanation of WHY you might use it.  I'm going to copy and paste now from this website/blog: http://terrychoo.com/understanding-the-pivot-function/

Terry gives the example of creating a table:

-- CREATE TABLE AND FILL WITH SAMPLE DATA
DECLARE @orders TABLE
(
custid INT,
empid INT,
shipperid INT,
freight NUMERIC(10,2)
)

INSERT INTO @orders (custid, empid, shipperid, freight)
VALUES (85,5,3,32.38),
(85,6,1,6.01),
(85,2,2,1.15),
(85,2,2,7.79),
(85,3,3,11.08);
A practical use for this data comes by way of a comment at the bottom of the page by "ronin" who writes, "Perhaps you could mention the motivation for pivoting before you explain it. You could say – find me the total freight for each shipper id associated with each customer id like this custid, shipperId1, shipperId2, shipperId3 etc. If you don’t mention the second part, then the reader might wonder why you are using pivoting. They might wonder if could just use a group by instead-" 
The light went on as I read that and thought to myself bingo!  Homework question for myself!  I don't think that I need to get in depth with pivoting but I should be able to figure a simple problem like that out given the data.  The correct answer for this query is in the blog, but I will definitely put it in my homework set and try not to peek.  This will help my understanding of how to PIVOT the data, UNPIVOTING will be next, something that I hope to understand deeper once I have the PIVOT piece down first.
Cheers!

Wednesday, January 22, 2014

Chapter 5 Answers Grouping/Windowing

1)  First, use this code to create the table that we're trying to query

USE TESTDB
GO
CREATE TABLE chapter5 (
ID INT,
Name VARCHAR(10));
USE TestDB
INSERT INTO chapter5 (ID, Name)
VALUES
(1, 'Alpha'),
(2, 'Beta'),
(3, 'Beta'),
(4, 'Beta'),
(5, 'Charlie'),
(6, 'Charlie')

Here's the query itself

USE TestDB
SELECT NAME, COUNT(ID) AS cnt
FROM chapter5
WHERE ID IS NOT NULL
GROUP BY Name
UNION ALL
SELECT 'SUM', COUNT(ID)
FROM chapter5
--
2)  Here's my answer, then the actual answer below it.  slight differences but produces same results

USE TSQL2012
SELECT shipperID, COUNT(shipperid) AS shipcount
FROM sales.orders
WHERE shipperid IS NOT NULL
GROUP BY shipperid
--
USE TSQL2012
SELECT shipperID, COUNT(*) AS numorders
FROM sales.orders
GROUP BY shipperid

3)
USE TSQL2012
SELECT shipperid, COUNT(*) AS numorder, YEAR(shippeddate) AS shippedyear
FROM sales.Orders
WHERE shippeddate IS NOT NULL
GROUP BY shipperid, YEAR(shippeddate)
HAVING COUNT(*) < 100

Exercise 1)
USE TSQL2012
SELECT c.custid, COUNT(*) AS numorders
FROM sales.Customers AS C
INNER JOIN sales.Orders AS O
ON c.custid = o.custid
WHERE c.country = 'Spain'
GROUP BY c.custid, c.city

Exercise 2) Working on it before I post so that I'm comfortable with it

Cheers

Sunday, January 19, 2014

Chapter 5 homework Lesson 1, grouping and windowing

Chapter 5 homework Lesson 1:

1) Two Tables with fields:
ID  Name
--  -------
1   Alpha
2   Beta
3   Beta
4   Beta
5   Charlie
6   Charlie
I want to group them by name, with 'count', and a row 'SUM' so that they look like the following:
Name     Count
-------  -----
Alpha     1
Beta      3
Charlie   2
SUM       6
How would I write a query to add SUM row below the table?
Answer: http://stackoverflow.com/questions/12927268/sum-of-grouped-count-in-sql-query

2)
Write a query that groups the number of rows by shipperid and count the number of rows (orders in this case) per each distinct group.  Use sales.orders
Answer: page 151

3)
Write a query that returns shipped orders by shipperid and shipping year, and filter only groups having fewer than 100 orders.  Use Table sales.orders
Answer: page 152

4)
Exercises in book

Saturday, January 18, 2014

Grouping Sets

Grouping sets and organizing data is something that I still have a hard time with, and from what I've read online it is very rarely used "in the wild".

None the less I know that understanding how to cube, roll up, and group into sets will likely pay dividends when I move into understanding another concept within Tsql.

SELECT s.shipperid, COUNT(*) AS numorders
FROM sales.orders AS s
GROUP BY shipperid

I think that the book does a great job starting with a very simple command then building upon it.  I will post homework as soon as I complete working through book examples/ exercises and reading through the chapter (maybe a few times).

Furthermore, here is a great explanation of grouping sets, I especially like the quoted explanation at the bottom of the page, vhttp://www.adathedev.co.uk/2011/01/grouping-sets-in-sql-server.html

The author gives the following example:

SELECT d.[ProductID], p.ProductCategoryID, SUM(d.LineTotal) AS Total
FROM SalesLT.SalesOrderDetail d
JOIN SalesLT.Product p ON d.ProductID = p.ProductID
GROUP BY GROUPING SETS((d.ProductID),(p.ProductCategoryID), ())

and the quote regarding grouping sets  in the specific code is "Return the totals grouped by ProductId, and also the totals grouped by ProductCategoryID and then also the Grand Total (indicated by the final pair of empty brackets).  

Cheers

Thursday, January 16, 2014

Chapter 4 answers

Here are the answers to chapter four questions.  I need to do these over and over until I have them down.  I'm finding that developing the answer is much simpler once you understand the question clearly.  I find myself working backwards from the answer to the question a lot of the time, which is interesting to me.

The question that was number four includes windowing I believe so I omitted it.  I can come back to it after next chapter (which is on windowing).

Maybe I'll post these in the forum and see if there is an easier way of doing these...

--1)
SELECT categoryid, MIN(unitprice) AS mn
FROM production.Products
GROUP BY categoryid
--2)  NEED TO RETRY!
WITH cte AS
(
SELECT categoryid, MIN(unitprice) AS mn
FROM production.Products
GROUP BY categoryid
)
SELECT P.categoryid, P.productid, P.productname, P.unitprice
FROM production.products AS P
INNER JOIN cte as m
ON P.categoryid = m.categoryid
AND P.unitprice = m.mn
--3)
SELECT p.productname, p.productid, p.unitprice, s.supplierid, s.country
FROM production.Products as p
INNER JOIN
production.Suppliers as S
ON p.supplierid = s.supplierid
WHERE s.country LIKE 'Japan'
--5)
SELECT c.custid, c.companyname, o.orderdate, o.custid
FROM sales.customers AS c
INNER JOIN
sales.orders AS o
ON c.custid = o.custid
WHERE orderdate = '20070212' OR orderdate = '20070213'
--6) Need to practice
IF OBJECT_ID('ForQuestion6', 'IF') IS NOT NULL DROP FUNCTION
ForQuestion6;
GO
CREATE FUNCTION ForQuestion6(@empid AS INT)
RETURNS TABLE AS;
--7)
SELECT productid, productname, unitprice, supplierid
FROM production.Products
WHERE supplierid = 1
ORDER BY unitprice ASC
OFFSET 0 ROWS FETCH FIRST 2 ROWS ONLY
--8
SELECT s.supplierid, s.companyname AS supplier, A.*
FROM production.suppliers AS s
CROSS APPLY (SELECT productid, productname, unitprice, supplierid
FROM production.Products
WHERE supplierid = 1
ORDER BY unitprice ASC
OFFSET 0 ROWS FETCH FIRST 2 ROWS ONLY) AS A
WHERE s.country = 'Japan'
--8, or this way with CTE
WITH cte AS
(SELECT productid, productname, unitprice, supplierid
FROM production.Products
WHERE supplierid = 1
ORDER BY unitprice ASC
OFFSET 0 ROWS FETCH FIRST 2 ROWS ONLY)
SELECT s.supplierid, s.companyname AS supplier, A.*
FROM production.suppliers AS s
CROSS APPLY  cte as A
WHERE s.country = 'Japan'

Wednesday, January 15, 2014

Chapter 4 homework

Homework Q's written from my phone so excuse typing errors.  All use TSQL2012 DB.

1) Use production.products table to group products by categoryid, and returns for each category the minimum unit price. 

2) define a CTE based on question 1 and join the CTE to the production.products table to return per each category the products with the minimum unit price.

3) write query that return suppliers from japan and the products they supply using production.suppliers table and production.products. Need, product name, id, and unit price.

4) -- Bad Question --

5)write a query that finds customers who placed orders on February 12, 2007. Using sales.customers, custid, company name; and sales.orders, order date… join on custid

6)create ITV function (anyname) with input as @empid INT, that returns a Table.

7)write query that returns the two products with the lowest unit price for supplier 1 using production.products table. Select productid, product name, unit price.

8)use query in question 7 and cross apply it to suppliers from japan that you have in the production.suppliers table. 

Chapter 4 Review

Just finished reading chapter 4 in it entirety.  I still need to work through the exercises and in book examples, then develop my own homework that will test my skills to writing sufficient code for these ideas.

I'm feeling like I did before I took the 461 test last time that I understand the code much better READING it, but the practice of writing it is where I am weaker.  Chapter four was a big chapter on subqueries (nesting), table expressions (derived tables, CTE, views, and Inline Table Functions), Apply opperators, and Set opperators (Union, Union All, Intersect, Except).  This is a big chunk of stuff to integrate and learn to write squeaky clean.  The next chapter is windowing which is something that I think they covered inadvertently in this chapter because some of the examples in the book had to due with ROW_NUMBER(), which is kind of a windowing feature; as well as examples in which you had to "find the two lowest priced items from supplier xyz that each have a unique categoryid".  Speaking of which, that's a pretty good homework assignment. I should look over the DB to become more familiar with it so that I'm able to play around with it more.

I don't want to move onto chapter 5 until I'm comfortable writing some queries base in Chapter 4.

Cheers until next time!

Monday, January 13, 2014

Busy weekend, and thoughts on SSC posts

Have not blogged in a few days, as it was a busy weekend full of work functions, and baptisms.

Now the coast is finally clear for me to work through these chapters without any distractions.  Finally getting through the exercises in chapter four tonight and tomorrow morning.  Need to stick to a routine so that I'm able to bust through these things.

My posts at SSC have been interesting lately.  Interesting because I seem to be posting elementary questions that I could just as easily look up as I could ask someone.  However, one of my most current posts was in regards to a definition that I looked up and still didn't understand.  The technical vernacular in these text books is sometimes very difficult to understand, so I reach out to the forum for a "translation".  I wasn't scolded for my question, but more so redirected to another reference site (books online), which as it turns out is an amazing tool.  One of the comments which definitely made me think was something to the affect of "I don't want to explain this to you so that you can regurgitate it and pass the cert test.... I want to frame your thought process in the correct way so that you're able to problem solve, and become a 'SQL Ninja'".  That wasn't verbatim, but close enough.  It made me think because I know for sure I was in the regurgitation mode during my first try at the test.  This time being more deliberate, I'm understanding much clearer, and hopefully will do better.  So although my question posted at the forum might not have aligned with my enlightened "process led" mind, I believe the answer it summoned illuminated my path to a higher understanding.

Cheers til' next time

Friday, January 10, 2014

Answers

Here are the answers I've come up with from my last post.  Have been working on them, have read through lesson 1 of chapter 4, but haven't done the exercises that I usually do that follow along in the book.

Here are answers, except for last one… still working on it, can't figure out where to add "unknown" to column "datediff"

:

SELECT firstname FROM hr.employees
WHERE firstname IS NULL
--
SELECT orderid, shippeddate
FROM sales.Orders
WHERE shippeddate IS NULL
--
USE TestDB
ALTER TABLE dbo.HELLO
ADD surrogate INT IDENTITY
--
DECLARE @youngest AS DATE
DECLARE @oldest AS DATE
SET @youngest =
(SELECT TOP (1) birthdate FROM hr.employees
ORDER BY birthdate DESC)
SET @oldest =
(SELECT TOP (1) birthdate FROM hr.employees
ORDER BY birthdate ASC)
SELECT CONCAT('The diff in years ', (DATEDIFF(year, @oldest, @youngest))) AS
'Age Gap'

THIS ALSO WORKS WHICH IS WHAT SOMEONE SUGGESTED IN FORUM:

SELECT 'The diff in years ' + DATEDIFF(YEAR,MIN(birthdate), MAX(birthdate)
FROM hr.employees

-- UNSURE ABOUT THIS ONE (READ BELOW, UPDATED 3/23/14)
USE TSQL2012
SELECT orderid, custid, shippeddate, DATEDIFF(day, shippeddate, GETDATE()) as diff,
CASE
WHEN diff > 1 THEN diff
WHEN diff IS NULL THEN 'unknown'
END
FROM Sales.orders
--UPDATE
WITH CTE AS (SELECT orderid, custid, shippeddate,
DATEDIFF(DAY,shippeddate,GETDATE()) AS diff
FROM sales.orders)
SELECT orderid, custid, shippeddate,
'since shipped' =
CASE
WHEN diff > 1 THEN diff
WHEN diff IS NULL THEN '-999999'
END
FROM CTE

Thursday, January 9, 2014

Chapter 3

Signed up on Microsoft's "Born to Learn" website, there is a study group there for 70-461, although there is VERY little action in it.  I'm trying to encourage people to partake.  

Hopeful of 2-3 hours of studying today (2 at least), once I've done the home work I'll start reading chapter 4.   Homework that I've assigned myself incorporates a lot of what I've done so far... HW is as follows:

Look for employees who have null in their firstname, employee table
Look for employees who have null in their lastname,
Look for employees who have null in their empid,
Orders (productid) that have NULL in their shippeddate from products table
Create column with datatype that is made up of a surrogate key
Find difference in years, then months, then days between youngest employee and oldest employee… create
column name “Age Gap”, value should be read: “diff in (years), diff in (months), diff in (days)”
Calculate difference of shippeddate from products table and today, if NULL then return “unknown”

Cheers.




Wednesday, January 8, 2014

Practicing part 1?

A few simple exercises that I forced myself to work on tonight:

Use TSQL2012, hr.employee table:

Find all employees that were born after 1963

Born before 1963

Born between Feb. 1 1965 and today

Find employees who's first name starts with 'D' and is born after 1960

Create column "astrology", sort employees, if they are born in months Jan-Jun label them "libra" in 'astrology' column, if born between July-December "taurus"

Here are my results:

SELECT firstname, lastname, birthdate
FROM hr.employees
WHERE birthdate >= '19630101'
ORDER BY birthdate

SELECT firstname, lastname, birthdate
FROM hr.employees
WHERE birthdate < '19630101'

SELECT firstname, lastname, birthdate
FROM hr.employees
WHERE birthdate BETWEEN '19650201' AND GETDATE()

ONLY SHOW YEAR BORN

SELECT firstname, lastname, YEAR(birthdate) as birthyear
FROM hr.employees
ORDER BY birthyear

SELECT firstname, lastname, birthdate
FROM hr.employees
WHERE birthdate > '19600101' AND firstname LIKE 'D%'

SELECT firstname, lastname, MONTH(birthdate) as BirthMonth, "Astrology" =
CASE
WHEN MONTH(birthdate) <= 6 THEN 'libra'
WHEN MONTH(birthdate) >= 7 THEN 'taurus'
ELSE 'unknown'
END
FROM hr.employees
ORDER BY Astrology, BirthMonth

Practice makes permanent

Spent two more hours last night and the better part of the morning reading and working through 70-461 training kit book.

Reading the material makes sense and I'm able to read tsql when I see it. But writing it is a bit of a challenge now. This is partially why I was excited about Russian website (maybe I'll have to give it a second chance) because I would be able work through exercises and and type on the keyboard vs just reading and spending less time working out problems. 

I think I'll make up my own practice questions today for the chapters so far and work on them tonight.

After a complete training course online and now going through the book I conceptually understand things.  One of the things that I like the most and that I get a kick of is learning something like this:

USE TSQL2012
GO
SELECT empid, firstname, lastname, MONTH(month, birthdate) AS birthmonth
FROM hr.employees
ORDER BY birthmonth

This is cool because the select statement gets processed before the order by clause, there for order by is able to sort by an alias... cool stuff.

Reading through the sqlservercentral (SSC from now on) forums I agree that the best practice that I'm going to get is reading real life situations, and trying to problem solve... another reason why SSC is a great resources.

Until next time...

Tuesday, January 7, 2014

Website review

I spent about an hour on the website that I was excited about previously (Russian one), and that was enough time to realize the inefficiencies of its practice methods.

Asking the user to write queries that produce certain results is a great idea, but there was no object explorer nor explanation of the tables/data.  Merely stating "table a includes columns x, y, z" write a query that produces this result....

A great idea for a site, but again inefficient. 

Turning my attention now to microsoft a virtual lab website which looks great, but doesn't work on Mac, needs to work with .net framework. 

I'm also looking for an educational app for my iPhone to help learning tsql. Currently I just browse sqlservercentral.com

Monday, January 6, 2014

Digging in on Forums

Going through exercises in training book and hit a road block so decided to post on www.sqlservercentral.com for some help.  Everyone on there seems super intelligent, and it's somewhat intimidating to post a question that is likely going to be elementary, but whatever.  

I'm not going to get any smarter if I don't ask questions!... forums like sqlservercentral are excellent resources to pick the brains of literally the most knowledgeable people in regards to SQL.. if they laugh at my post, oh well, hopefully it brightens their day....There's no shame in my game!

2.5 hours hitting the book, and querying tonight... time for some RR and to get back at it tomorrow morning.

Tomorrow I'll look into that Russian website to see if it's any good... 

Sunday, January 5, 2014

Hopefully great website

Found what I hope to be a great website for sql exercise's I'll register tonight and hopefully have a review/opinion in the next couple days.

www.SQL-ex.ru is the site

Saturday, January 4, 2014

Day after effect

Instead of being down in the dumps after my failed exam yesterday I feel more motivated than ever... Hopefully I can get in a few hours of programming/development with the 70-461 training kit as my guide. My plan is to work hard on the exercises that the book recommends for each lesson
I find that my skill reading sql exceeds my ability to write it.

Friday, January 3, 2014


Here's where I plan on being active as well.   Cheers!

First taste of 70-461

As my first blog EVER I think I should share WHY it is that I've decided to blog.

I'm close to turning thirty, and I've realized through my life so far that I have never stopped learning.  Whether it be in my current job, during my college years, or even in the car on the way to work (love podcasts, shout out to Dan Carlin)...there has always been a thirst to know something about something.  I think that it's time that I document what it is that I'm learning, and where I'm concentrating my efforts when it comes to education.  If I end up motivating someone in the mean time it would stand as a bonus for producing this blog.  Mainly it will be a journal for my self.

This blog will be about my route to landing a job in IT, seems silly writing it down, but who cares.  I currently hold a marketing degree from a small college, and have had very little experience in IT up until 2 years ago.  I was enlisted by a family member to learn some programming and development in his company to possibly help him with work in the future.  It was my first taste of real development work, and I loved it.  The problem was that the language being written in was archaic to the core.  Because of this I began on my own to learn more about SQL, and began to truly enjoy the ideas of databases, and database management.  After interviewing for a few jobs in IT/Analytics, and revamping my resume (about 9 times) I really needed to get a certification under my belt if I want to stand out from the rest of the job candidates.  Which brings me to today.

Today I tried my first attempt at the MCSA 70-461 and failed.... I've been studying for roughly a month, and was honestly blown away at the depth of the questions.  I was in over my head today.

This blog is in an effort to document my progression until I pass the 70-461; 70-462; and 70-463 to become Microsoft Certified Solutions Associate.  A blog may seem like a big undertaking for such a meager title, but it is much more than that to me.  It's checking ones guts, it's following a passion, it's the never ending path of knowledge, and it's the humility to write about it in a sensible way.

So cheers, and lets get this party started... updates to come on practice days with curriculum, thoughts, and the occasional lame joke.