Author: way0utwest

  • The Good Job

    I have the best job in the world.

    These days it also seems that many people are disenchanted with their jobs. They work for the paycheck with little loyalty or concern for their company’s business, and I think that’s fair. When I hear about companies that are not very loyal or concerned with their employees, asking for more work every year without more compensation, with less people and the threat of layoffs hanging over the employee’s head, I think employees have to start treating themselves as self-employed. They should consider their employment as a “contract” with their employer, one that is temporary.

    However I don’t know that this is how the majority of people feel. It seems that I regularly meet people that like their jobs, and feel their employers treat them fairly. I feel that way, and think my employer does an excellent job of partnering with employees, rather than exploiting them. People are treated fairly, trusted, and in return, they do a professional job, to the best of their abilities.

    In the last few months, I’ve attended quite a few events and spoken with hundred of people. While the people that often attend events are a self-selective group, but most of the people I’ve had conversations with like their jobs. For the most part they think their jobs are fairly secure. That’s comforting, especially at a time when much of the news in the world relating to the economy and job outlooks is bleak.

    If you don’t have a good job, it’s up to you to look to make a change. It can be a slow, drawn out process, but it doesn’t get done through delay. Make a plan, build up your skills, improve your brand, and set a goal to make a change to find a better job across the next year or two. Life’s too short to live with a crappy job for a long time, no matter how much they pay you.

    Steve Jones


    The Voice of the DBA Podcasts

  • SQL in the City – LA

    I had a fantastic time at SQL in the City in London, and it was quite an honor for me to speak there, at the Royal Society of Medicine. Tomorrow I’m taking off for LA, for SQL in the City – LA, the second part of our experiment. This time I’m joined by Kalen Delaney, Denny Cherry, Aaron Nelson, and Rob Sullivan in addition to Grant, Brad, and a number of Red Gate’ers.

    We’ll be at the Skirball Cultural Center, which is just off the 405 in LA. If you’re in the area, the map is below, and you can still register if you can come on Friday.

    The last time we did this, we had a great mix of sessions, having panels of breaks taking place in one room when someone was speaking in another. There was plenty of refreshments, including a closing thank you with Red Gate beer.

    This should be another fun event, and I’m hoping that it goes over well. If you enjoy it, please let Red Gate know so we can schedule more of these next year.

    Location

  • The Basics of Joins – Skill #4

    This series of blog posts are related to my presentation, The Top Ten Skills You Need, which is scheduled for a few deliveries in 2011.

    Databases are built to store data. That’s the primary purpose, and in SQL Server, we store data in a relational form. That means that often we have data spread across multiple tables. Why we do this is a discussion for another day, but suffice it to say that we often have structures like this:

    personcontact

    Part of the person.contact table in AdventureWorks above and the HumanResource.Employee table below.

    employee

    One typical join task might be to get an employee’s name, or a list of employees and their names. Here we have a birthday in the Employee table, but we don’t have a name. That’s in the Person.Contact table. Essentially we want to match these up using basic, elementary school set theory.

    settheory

    In the diagram above, you can think of each letter as a row in a table. As an example, let’s assume that B in the orange circle represents the row in the employee table with a ContactID value of 4. The B in the pink circle would represent the row in the Contact table with a ContactID value of 4 as well.

    When we join these to get the Employee name and birth date, we get:

    join2

    I used a join in my query to get that:

    SELECT 
      c.firstname
    , c.LastName
    , e.BirthDate
     FROM person.contact c
       INNER JOIN HumanResources.Employee e
         ON c.ContactID = e.ContactID
     WHERE c.ContactID = 4
     

    In this query I’ve included two tables in the FROM clause with the INNER JOIN key phrase between them, which specifies I only choose the matching rows. The match is made in the ON clause.

    I’ve also qualified this to only apply to the row with a ContactID of 4 in the WHERE clause.

    There’s a lot more you can do with joins, and you can include more than two tables, such as this query:

    SELECT 
      c.firstname
    , c.LastName
    , e.BirthDate
    , pa.AddressLine1
    , pa.AddressLine2
     FROM person.contact c
       INNER JOIN HumanResources.Employee e
         ON c.ContactID = e.ContactID
       INNER JOIN HumanResources.EmployeeAddress ea
         ON e.EmployeeID = ea.EmployeeID
       INNER JOIN person.Address pa
         ON ea.AddressID = pa.AddressID
     WHERE c.ContactID = 4
     

    I would recommend that you practice working with basic joins, based on the information that you commonly see queried in your application. Sooner or later someone will ask you for some data that isn’t available in the application and you will want to write a query to extract it for them.

  • The HR Scorecard

    Dundas controls make building interesting dashboards easy

    Are you looking for a BI project in your company to get some experience with? I’ve got an idea that you might try tackling as a side project, or even an informal project within the business.

    One of the problems that many corporations face today is a regular turnover of employees. That causes a loss of productivity, moral suffers, and projects may run late. This might be because of poor working conditions, poor management, or some other factor. While you might not be able to change that, perhaps you can help bring some visibility to potential problems.

    Human Resource departments are similar to IT departments in that both of them are a cost to the organization without generating revenue. These are overhead departments, and often receive limited budgets and assistance to accomplish anything beyond the bare minimum. These departments can add value, and the good ones help companies in many ways, reducing the costs that might otherwise occur.

    I have rarely seen HR departments with deep analysis tools available to them that might help them function more efficiently. If you want to tackle a BI project, think about building a detailed scorecard or set of KPIs for the HR department that might help them better understand what is happening in the company. Watching for the impact of vacations, turnover, etc. and aggregating exit interview data might help HR improve the conditions at the company, perhaps even for you.

    I’d consider working on an HR BI project, even during some off hours if you have an interest in this area. I’m sure the HR people will appreciate it, and they might be the ones that are in the best position to help you with your career down the road.

    Steve Jones


    The Voice of the DBA Podcasts